aboutsummaryrefslogtreecommitdiffstats
path: root/KinematicBody2D.gd
blob: 4f2949cb3335c92efe915f4c52fa0b5144ebfc2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
extends Area2D

signal hit
var screen_size
export (int) var speed = 200
var spawn_object = load("res://Bullet.tscn")
var velocity = Vector2()
onready var globals = get_node("/root/Global")

func get_input():
	velocity = Vector2()
	if Input.is_action_pressed("right"):
		velocity.x += 1
	if Input.is_action_pressed("left"):
		velocity.x -= 1
	if Input.is_action_pressed("down"):
		velocity.y += 1
	if Input.is_action_pressed("up"):
		velocity.y -= 1
	velocity = velocity.normalized() * speed

func _ready():
	screen_size = get_viewport_rect().size

func _physics_process(delta):
	get_input()
	globals.playerPos = global_position
	position += velocity * delta
	position.x = clamp(position.x, 0, screen_size.x)
	position.y = clamp(position.y, 0, screen_size.y)
	if Input.is_action_just_pressed("click"):
		var obj = spawn_object.instance()
		obj.position = get_position()
		get_owner().add_child(obj)
	var bodies = get_overlapping_bodies()
	for body in bodies:
		if body.get_name() != "Bullet":
			emit_signal("hit", delta)