mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-17 06:33:47 +00:00
Strawberry Explosion
This commit is contained in:
parent
2b53936f8b
commit
b9d03efbb8
5 changed files with 42 additions and 6 deletions
|
|
@ -7,9 +7,14 @@ public partial class fragola : RigidBody2D
|
||||||
[Signal]
|
[Signal]
|
||||||
public delegate void HitEventHandler();
|
public delegate void HitEventHandler();
|
||||||
|
|
||||||
|
private AnimatedSprite2D _animatedSprite;
|
||||||
|
|
||||||
|
private bool _isAlive = true;
|
||||||
|
|
||||||
// Called when the node enters the scene tree for the first time.
|
// Called when the node enters the scene tree for the first time.
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
{
|
{
|
||||||
|
_animatedSprite = GetNode<AnimatedSprite2D>("./AnimatedSprite2D");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
|
@ -20,15 +25,34 @@ public partial class fragola : RigidBody2D
|
||||||
private void _on_body_entered(Node body)
|
private void _on_body_entered(Node body)
|
||||||
{
|
{
|
||||||
Debug.WriteLine("Collision");
|
Debug.WriteLine("Collision");
|
||||||
Hide();
|
|
||||||
EmitSignal(SignalName.Hit);
|
EmitSignal(SignalName.Hit);
|
||||||
// Must be deferred as we can't change physics properties on a physics callback.
|
|
||||||
GetNode<CollisionShape2D>("CollisionShape2D").SetDeferred(CollisionShape2D.PropertyName.Disabled, true);
|
|
||||||
}
|
}
|
||||||
private void _on_area_2d_area_entered(Area2D area)
|
private void _on_area_2d_area_entered(Area2D area)
|
||||||
{
|
{
|
||||||
// Replace with function body.
|
// Replace with function body.
|
||||||
Debug.WriteLine("Collision area");
|
Debug.WriteLine("Collision area");
|
||||||
EmitSignal(SignalName.Hit);
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -138,7 +138,6 @@ collision_layer = 2
|
||||||
collision_mask = 3
|
collision_mask = 3
|
||||||
script = ExtResource("1_m27vu")
|
script = ExtResource("1_m27vu")
|
||||||
Speed = 2000
|
Speed = 2000
|
||||||
CrosshairDistance = 20.0
|
|
||||||
BulletScene = ExtResource("2_ov36d")
|
BulletScene = ExtResource("2_ov36d")
|
||||||
Muzzle = NodePath("Muzzle")
|
Muzzle = NodePath("Muzzle")
|
||||||
metadata/_edit_group_ = true
|
metadata/_edit_group_ = true
|
||||||
|
|
|
||||||
|
|
@ -6160,6 +6160,7 @@ script = ExtResource("6_t8ide")
|
||||||
|
|
||||||
[node name="Player" parent="." instance=ExtResource("2_8mh54")]
|
[node name="Player" parent="." instance=ExtResource("2_8mh54")]
|
||||||
position = Vector2(7, 1)
|
position = Vector2(7, 1)
|
||||||
|
CrosshairDistance = 10.0
|
||||||
|
|
||||||
[node name="ReferenceRect" type="ReferenceRect" parent="."]
|
[node name="ReferenceRect" type="ReferenceRect" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
|
|
|
||||||
|
|
@ -9,12 +9,24 @@ public partial class Bullet : Area2D
|
||||||
|
|
||||||
private Vector2 _direction = Vector2.Right;
|
private Vector2 _direction = Vector2.Right;
|
||||||
|
|
||||||
|
//public delegate void BulletHitEventHandler(Node Body);
|
||||||
|
//public event BulletHitEventHandler BulletHit;
|
||||||
|
|
||||||
// Called when the node enters the scene tree for the first time.
|
// Called when the node enters the scene tree for the first time.
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
{
|
{
|
||||||
|
//this.Connect("body_entered", new Callable(this, nameof(OnBodyEntered)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//private void OnBodyEntered(Node body)
|
||||||
|
//{
|
||||||
|
// When a body is entered, invoke the event and pass the collided body
|
||||||
|
// BulletHit?.Invoke(body);
|
||||||
|
|
||||||
|
// Then remove the bullet
|
||||||
|
// QueueFree();
|
||||||
|
//}
|
||||||
|
|
||||||
public void SetDirection(Vector2 direction)
|
public void SetDirection(Vector2 direction)
|
||||||
{
|
{
|
||||||
var normalized = direction.Normalized();
|
var normalized = direction.Normalized();
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ public partial class PlayerMovement : CharacterBody2D
|
||||||
{
|
{
|
||||||
if (Input.IsActionJustPressed("shoot"))
|
if (Input.IsActionJustPressed("shoot"))
|
||||||
{
|
{
|
||||||
Debug.WriteLine("Shoot");
|
//Debug.WriteLine("Shoot");
|
||||||
Bullet bullet = BulletScene.Instantiate<Bullet>();
|
Bullet bullet = BulletScene.Instantiate<Bullet>();
|
||||||
Owner.AddChild(bullet);
|
Owner.AddChild(bullet);
|
||||||
bullet.Transform = Muzzle.GlobalTransform;
|
bullet.Transform = Muzzle.GlobalTransform;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue