|
|
|
|
@ -3,16 +3,24 @@ using Godot;
|
|
|
|
|
namespace Tutorial1.Scripts;
|
|
|
|
|
|
|
|
|
|
public partial class Abdullah : Sprite2D {
|
|
|
|
|
private const int AMOUNT = 5;
|
|
|
|
|
private Sprite2D child;
|
|
|
|
|
private Timer clock;
|
|
|
|
|
|
|
|
|
|
public override void _Ready() => child = GetNode<Sprite2D>("Child");
|
|
|
|
|
[Signal] public delegate void MovedEventHandler(float x, float y);
|
|
|
|
|
|
|
|
|
|
public override void _Process(double delta) {
|
|
|
|
|
uint randomNumber = GD.Randi() % 4;
|
|
|
|
|
if (randomNumber == 0) Position += new Vector2(0, -AMOUNT);
|
|
|
|
|
if (randomNumber == 1) Position += new Vector2(0, AMOUNT);
|
|
|
|
|
if (randomNumber == 2) Position += new Vector2(-AMOUNT, 0);
|
|
|
|
|
if (randomNumber == 3) Position += new Vector2(AMOUNT, 0);
|
|
|
|
|
public override void _Ready() {
|
|
|
|
|
clock = GetNode<Timer>("Clock");
|
|
|
|
|
clock.WaitTime = 1;
|
|
|
|
|
clock.Timeout += ClockOnTimeout;
|
|
|
|
|
clock.Start();
|
|
|
|
|
Moved += OnMoved;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static void OnMoved(float x, float y) => GD.Print($"Moved x={x},y={y}");
|
|
|
|
|
|
|
|
|
|
private void ClockOnTimeout() {
|
|
|
|
|
Vector2 newPosition = new(GD.RandRange(0, 500), GD.RandRange(0, 500));
|
|
|
|
|
Position = newPosition;
|
|
|
|
|
EmitSignal("Moved", newPosition.X, newPosition.Y);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|