create goomba behavior
This commit is contained in:
parent
a567b0c3a3
commit
6ffb2a58d0
19
scenes/enemies/Enemy.cs
Normal file
19
scenes/enemies/Enemy.cs
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public class Enemy : KinematicBody2D
|
||||||
|
{
|
||||||
|
[Export]
|
||||||
|
private Vector2 _startPosition;
|
||||||
|
public Vector2 StartPosition { get { return _startPosition; } }
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
_startPosition = Position;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void Reset()
|
||||||
|
{
|
||||||
|
Position = _startPosition;
|
||||||
|
}
|
||||||
|
}
|
31
scenes/enemies/EnemyWalking.cs
Normal file
31
scenes/enemies/EnemyWalking.cs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public class EnemyWalking : Enemy
|
||||||
|
{
|
||||||
|
[Export]
|
||||||
|
private int _gravity = (int) ProjectSettings.GetSetting("physics/2d/default_gravity");
|
||||||
|
private Vector2 _velocity;
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
base._Ready();
|
||||||
|
_velocity = new Vector2();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _PhysicsProcess(float delta)
|
||||||
|
{
|
||||||
|
_velocity.y += (int) _gravity * delta * 5;
|
||||||
|
_velocity.x = 25 * -1;
|
||||||
|
_velocity = MoveAndSlide(_velocity, Vector2.Up);
|
||||||
|
|
||||||
|
Mathf.Round(Position.x);
|
||||||
|
Mathf.Round(Position.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Reset()
|
||||||
|
{
|
||||||
|
base.Reset();
|
||||||
|
_velocity = new Vector2();
|
||||||
|
}
|
||||||
|
}
|
19
scenes/enemies/goomba/Goomba.cs
Normal file
19
scenes/enemies/goomba/Goomba.cs
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public class Goomba : EnemyWalking
|
||||||
|
{
|
||||||
|
private AnimatedSprite _sprite;
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
base._Ready();
|
||||||
|
_sprite = GetNode<AnimatedSprite>("AnimatedSprite");
|
||||||
|
_sprite.Play("walk");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnVisibilityNotifier2DScreenExited()
|
||||||
|
{
|
||||||
|
Reset();
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
[gd_scene load_steps=7 format=2]
|
[gd_scene load_steps=8 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://assets/goomba/walking.png" type="Texture" id=1]
|
[ext_resource path="res://assets/goomba/walking.png" type="Texture" id=1]
|
||||||
|
[ext_resource path="res://scenes/enemies/goomba/Goomba.cs" type="Script" id=2]
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=1]
|
[sub_resource type="AtlasTexture" id=1]
|
||||||
atlas = ExtResource( 1 )
|
atlas = ExtResource( 1 )
|
||||||
@ -23,10 +24,11 @@ animations = [ {
|
|||||||
} ]
|
} ]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=5]
|
[sub_resource type="RectangleShape2D" id=5]
|
||||||
extents = Vector2( 6.5, 7 )
|
extents = Vector2( 6.67969, 7 )
|
||||||
|
|
||||||
[node name="Goomba" type="KinematicBody2D" groups=["Enemy", "Stompable"]]
|
[node name="Goomba" type="KinematicBody2D" groups=["Enemy", "Stompable"]]
|
||||||
collision_layer = 4
|
collision_layer = 4
|
||||||
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
|
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
|
||||||
frames = SubResource( 4 )
|
frames = SubResource( 4 )
|
||||||
@ -34,5 +36,14 @@ animation = "walk"
|
|||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
position = Vector2( 0.5, 2 )
|
position = Vector2( 0.320312, 2 )
|
||||||
shape = SubResource( 5 )
|
shape = SubResource( 5 )
|
||||||
|
|
||||||
|
[node name="VisibilityEnabler2D" type="VisibilityEnabler2D" parent="."]
|
||||||
|
visible = false
|
||||||
|
position = Vector2( 1, 0 )
|
||||||
|
rect = Rect2( -9, -9, 18, 18 )
|
||||||
|
process_parent = true
|
||||||
|
physics_process_parent = true
|
||||||
|
|
||||||
|
[connection signal="screen_exited" from="VisibilityEnabler2D" to="." method="OnVisibilityNotifier2DScreenExited"]
|
||||||
|
Loading…
Reference in New Issue
Block a user