1

我正在做一个基于瓷砖的 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_leftandmove_right需要返回 的值@x,因此在该方法中进行递归是行不通的。任何人都有任何想法,或者我是否应该不使用chingu并尝试找出draw方法中的逻辑?

4

0 回答 0