gd: added input addon
This commit is contained in:
50
guide_examples/combos/player.gd
Normal file
50
guide_examples/combos/player.gd
Normal file
@ -0,0 +1,50 @@
|
||||
## This is a somewhat more complex player example. Note how all the combos
|
||||
## are completely handled by GUIDE, the player doesn't need to know which
|
||||
## inputs trigger them.
|
||||
extends CharacterBody2D
|
||||
|
||||
@export var speed:float = 150
|
||||
@export var dash_speed_bonus:float = 250
|
||||
|
||||
@export var horizontal_movement:GUIDEAction
|
||||
@export var dash_left:GUIDEAction
|
||||
@export var dash_right:GUIDEAction
|
||||
@export var fireball_left:GUIDEAction
|
||||
@export var fireball_right:GUIDEAction
|
||||
|
||||
@export var fireball_scene:PackedScene
|
||||
|
||||
var _dash_bonus:float
|
||||
|
||||
func _ready():
|
||||
# We can use the event system to get notified whenever
|
||||
# the combo actions trigger. This way we don't need to check them
|
||||
# in _physics_process every frame.
|
||||
dash_left.triggered.connect(func(): _dash_bonus = -1)
|
||||
dash_right.triggered.connect(func(): _dash_bonus = 1)
|
||||
fireball_left.triggered.connect(_spawn_fireball.bind(Vector2.LEFT))
|
||||
fireball_right.triggered.connect(_spawn_fireball.bind(Vector2.RIGHT))
|
||||
|
||||
|
||||
func _physics_process(delta):
|
||||
# Get current left-right input
|
||||
var movement:float = horizontal_movement.value_axis_1d
|
||||
|
||||
# Move any dash bonus towards zero
|
||||
_dash_bonus = move_toward(_dash_bonus, 0, delta)
|
||||
|
||||
# Calculate new velocity
|
||||
velocity.x = movement * speed + _dash_bonus * dash_speed_bonus
|
||||
velocity.y = 980
|
||||
move_and_slide()
|
||||
|
||||
|
||||
func _spawn_fireball(direction:Vector2) -> void:
|
||||
# spawn a new fireball
|
||||
var fireball:Node2D = fireball_scene.instantiate()
|
||||
# add it to the tree
|
||||
get_parent().add_child(fireball)
|
||||
# start at our position/orientation
|
||||
fireball.global_transform = global_transform
|
||||
# fly into the given direction
|
||||
fireball.direction = direction
|
Reference in New Issue
Block a user