diff options
| author | freddie-a <57713959+freddie-a@users.noreply.github.com> | 2022-10-30 09:21:08 +0000 |
|---|---|---|
| committer | freddie-a <57713959+freddie-a@users.noreply.github.com> | 2022-10-30 09:21:08 +0000 |
| commit | d532570052901e9e956fab4809228a6b742ee233 (patch) | |
| tree | 6161dbaedf0ed172a3ceced9abce68c2f72f667c /Player.gd | |
| parent | f3ac42262d09514040a7c48a2fd320c23a16a950 (diff) | |
Rotate player to mouse and rename
Diffstat (limited to 'Player.gd')
| -rw-r--r-- | Player.gd | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Player.gd b/Player.gd new file mode 100644 index 0000000..9b5bbd6 --- /dev/null +++ b/Player.gd @@ -0,0 +1,43 @@ +extends Area2D + +signal hit +signal coin +var screen_size +export (int) var speed = 500 +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) + rotation = global_position.angle_to_point(get_global_mouse_position()) + PI + PI / 8 # extra /8 to offset TeX's snout + if Input.is_action_just_pressed("click"): + var obj = spawn_object.instance() + obj.position = get_position() + get_parent().add_child(obj) + var bodies = get_overlapping_bodies() + for body in bodies: + if "Coin" in body.get_name(): + emit_signal("coin") + body.free() + elif "Enemy" in body.get_name(): + emit_signal("hit", delta) |
