flappy-bird/Player.gd

51 lines
1.1 KiB
GDScript3
Raw Normal View History

2020-01-14 22:20:17 +01:00
extends Area2D
2020-01-15 18:48:07 +01:00
export var speed = 3 # How fast the player will move (pixels/sec).
export var jump_speed = 4
export var speed_inc = 0.3
2020-01-14 22:20:17 +01:00
signal move
2020-01-15 14:43:08 +01:00
signal hit
2020-01-14 22:20:17 +01:00
var screen_size
2020-01-15 18:48:07 +01:00
var playing = false
2020-01-14 22:20:17 +01:00
var speed_y = 0
func start():
position = screen_size / 2
# Called when the node enters the scene tree for the first time.
func _ready():
screen_size = get_viewport_rect().size
func _process(delta):
if Input.is_action_just_pressed("ui_accept"):
2020-01-15 18:48:07 +01:00
if not playing:
speed_y = 0
playing = true
$CollisionShape2D.set_deferred("disabled", false)
2020-01-14 22:20:17 +01:00
speed_y = min(speed_y, 0) - 1 * jump_speed
2020-01-15 18:48:07 +01:00
if not playing:
return
speed_y += speed_inc
position += Vector2(speed, speed_y * speed)
2020-01-14 22:20:17 +01:00
emit_signal("move")
# TODO find the correct rotation, noob
rotation = atan(speed_y / speed) + PI / 2
2020-01-15 18:48:07 +01:00
if position.y > screen_size.y / 2 - 100:
emit_signal("hit")
print(position)
playing = false
2020-01-15 14:43:08 +01:00
func _on_Player_body_entered(body):
2020-01-15 18:48:07 +01:00
playing = false
2020-01-15 15:44:46 +01:00
#hide() # Player disappears after being hit.
2020-01-15 14:43:08 +01:00
emit_signal("hit")
$CollisionShape2D.set_deferred("disabled", true)