我对编码很陌生,我仍在尝试不同的语言,我从 GameMaker Studio 开始,由于它与 Mac 的兼容性而改用 Godot,我不妨学习一些新的东西,因为 GameMaker 已经推出了很长一段时间。
我想创建一个 RPG 游戏并将动画应用于角色移动的每个方向,但动画仅在按下并抬起键后播放。这意味着当我按下我的键时,动画停止,并且动画仅在我的角色静止不动时播放,这与我想要的完全相反。该脚本看起来非常简单,但似乎不起作用。
我会将其标记为 GDScript 语言而不是 Python,但我想我没有足够的信誉来制作新标签,所以我将它标记在 python 下,因为它最相似。#variables 扩展了 KinematicBody2D
const spd = 100
var direction = Vector2()
var anim_player = null
func _ready():
set_fixed_process(true)
anim_player = get_node("move/ani_move")
#movement and sprite change
func _fixed_process(delta):
if (Input.is_action_pressed("ui_left")) :
direction.x = -spd
anim_player.play("ani_player_left")
elif (Input.is_action_pressed("ui_right")):
direction.x = spd
anim_player.play("ani_player_right")
else:
direction.x = 0
if (Input.is_action_pressed("ui_up")) :
direction.y = -spd
anim_player.play("ani_player_up")
elif (Input.is_action_pressed("ui_down")):
direction.y = (spd)
anim_player.play("ani_player_down")
else:
direction.y = 0
if (Input.is_action_pressed("ui_right")) and (Input.is_action_pressed("ui_left")):
direction.x = 0
if (Input.is_action_pressed("ui_up")) and (Input.is_action_pressed("ui_down")) :
direction.y = 0
# move
var motion = direction * delta
move(motion)