我正在做一个基于图块的RPG类型游戏,其中图块(包括字符)都是50x50
。我之前没有使用过chingu,但看看文档,我有这个:
class Player < Chingu::GameObject
def initialize(options)
end
def move_left
@x -= 50
end
def move_right
@x += 50
end
end
class Game < Chingu::Window
def initialize
super
@player = Player.create
@player.input = {:left => :move_left, :right => :move_right}
end
end
使用此移动步骤之间没有流动性。现在,做标准的while key_down?(:left); move_left; end
类型交易,然后只是以较小的间隔移动角色使其平滑,但问题最终是角色能够在网格线之间停止(如果这是有道理的)。
似乎move_left
和move_right
需要返回@x
的值,因此在该方法中进行递归不起作用。任何人都有任何想法,或者我应该不使用chingu并尝试找出draw
方法中的逻辑?