34 lines
1.1 KiB
GDScript
34 lines
1.1 KiB
GDScript
class_name Voiture
|
|
extends Area2D
|
|
|
|
var prevPositionX = 0;
|
|
var prevPositionY = 0;
|
|
|
|
func updatePosition(x: float, y: float) -> void:
|
|
var velocityX = prevPositionX - x;
|
|
var velocityY = prevPositionY - y;
|
|
$shapeDown.set_deferred("disabled", true);
|
|
$shapeUp.set_deferred("disabled", true);
|
|
$shapeLeft.set_deferred("disabled", true);
|
|
$shapeRight.set_deferred("disabled", true);
|
|
if(abs(velocityX) > abs(velocityY)):
|
|
if velocityX > 0 :
|
|
$AnimatedSprite2D.animation = "driving_left";
|
|
$shapeLeft.set_deferred("disabled", false);
|
|
if velocityX < 0 :
|
|
$AnimatedSprite2D.animation = "driving_right";
|
|
$shapeRight.set_deferred("disabled", false);
|
|
if(abs(velocityX) < abs(velocityY)):
|
|
if velocityY > 0 :
|
|
$AnimatedSprite2D.animation = "driving_up";
|
|
$shapeUp.set_deferred("disabled", false);
|
|
if velocityY < 0 :
|
|
$AnimatedSprite2D.animation = "driving_down";
|
|
$shapeDown.set_deferred("disabled", false);
|
|
prevPositionX = x;
|
|
prevPositionY = y;
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
func _process(delta: float) -> void:
|
|
$AnimatedSprite2D.play()
|