我正在制作一个角色扮演游戏,玩家可以使用 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)
我正在使用 Godot 的运动力学示例。