54 lines
1.2 KiB
GDScript
54 lines
1.2 KiB
GDScript
extends CharacterBody2D
|
|
|
|
var speed = 750
|
|
var sprite = Sprite2D
|
|
var hurtTimer = 0
|
|
var hurt = false
|
|
var lives = 3
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready():
|
|
sprite = $FishSprite
|
|
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
func _physics_process(delta):
|
|
movement()
|
|
animation()
|
|
damage()
|
|
|
|
func movement():
|
|
var direction = Input.get_vector("Left","Right","Up","Down")
|
|
velocity = direction * speed
|
|
move_and_slide()
|
|
|
|
func animation():
|
|
if Input.is_action_just_pressed("Left"):
|
|
sprite.flip_h = false
|
|
sprite.position = Vector2(11, 0)
|
|
if Input.is_action_just_pressed("Right"):
|
|
sprite.flip_h = true
|
|
sprite.position = Vector2(-49, 0)
|
|
|
|
func damage():
|
|
if hurtTimer > 0 && hurtTimer % 2 == 0:
|
|
sprite.visible = false
|
|
if hurtTimer > 0 && hurtTimer % 2 == 1:
|
|
sprite.visible = true
|
|
|
|
if hurt == true && hurtTimer == 0:
|
|
var direction = Input.get_vector("Left","Right","Up","Down")
|
|
velocity = -direction * speed * 10
|
|
move_and_slide()
|
|
lives -= 1
|
|
hurt = false
|
|
hurtTimer = 60
|
|
else: if hurt == true && hurtTimer != 0:
|
|
var direction = Input.get_vector("Left","Right","Up","Down")
|
|
velocity = -direction * speed * 10
|
|
move_and_slide()
|
|
hurt = false
|
|
|
|
if hurtTimer != 0:
|
|
hurtTimer -= 1
|