mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 11:05:34 +00:00
58 lines
1.2 KiB
C#
58 lines
1.2 KiB
C#
using Godot;
|
|
using System;
|
|
using System.Diagnostics;
|
|
|
|
public partial class Fragola : RigidBody2D
|
|
{
|
|
[Signal]
|
|
public delegate void HitEventHandler();
|
|
|
|
private AnimatedSprite2D _animatedSprite;
|
|
|
|
private bool _isAlive = true;
|
|
|
|
// Called when the node enters the scene tree for the first time.
|
|
public override void _Ready()
|
|
{
|
|
_animatedSprite = GetNode<AnimatedSprite2D>("./AnimatedSprite2D");
|
|
}
|
|
|
|
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
public override void _Process(double delta)
|
|
{
|
|
}
|
|
|
|
private void _on_body_entered(Node body)
|
|
{
|
|
Debug.WriteLine("Collision");
|
|
|
|
EmitSignal(SignalName.Hit);
|
|
|
|
}
|
|
private void _on_area_2d_area_entered(Area2D area)
|
|
{
|
|
// Replace with function body.
|
|
Debug.WriteLine("Collision area");
|
|
EmitSignal(SignalName.Hit);
|
|
|
|
if (_isAlive)
|
|
{
|
|
Explode();
|
|
}
|
|
}
|
|
|
|
private void Explode()
|
|
{
|
|
_isAlive = false;
|
|
_animatedSprite.Play("explode");
|
|
|
|
//Hide();
|
|
DisableCollision();
|
|
}
|
|
|
|
private void DisableCollision()
|
|
{
|
|
// Must be deferred as we can't change physics properties on a physics callback.
|
|
GetNode<CollisionShape2D>("CollisionShape2D").SetDeferred(CollisionShape2D.PropertyName.Disabled, true);
|
|
}
|
|
}
|