Я делаю RPG, где игрок может свободно перемещаться по миру с помощью клавиш WASD;но в бою игрок переключается на тактическое движение на основе сетки, управляемое мышью.Я думал использовать состояния для достижения этой цели;но я не знаю, как правильно это сделать.
Вот мой код для моей механики движения:
extends KinematicBody2D
export (int) var speed = 250
var velocity
var states = {movement:[Over_Mov, Tile_Mov]}
var current_state = null
func _ready():
current_state = Over_Mov
func get_input():
velocity = Vector2()
if Input.is_action_pressed("ui_up"):
velocity.y -= 1
elif Input.is_action_pressed("ui_down"):
velocity.y += 1
elif Input.is_action_pressed("ui_right"):
velocity.x += 1
elif Input.is_action_pressed("ui_left"):
velocity.x -= 1
velocity = velocity.normalized() * speed
func _physics_process(delta):
get_input()
move_and_collide(velocity*delta)
Я использую образец Годо для механики движения.