0

我正在尝试在 DrRacket 中为我的游戏制作动画,当我按下左键时,我希望我的图像做一个跑步动画(腿打开 --> 腿闭合)。有没有办法可以延迟图像交换?计算机进行交换的速度非常快,以至于您看不到交换发生。-->

(define (keyboard-function key)
  (cond ((eq? key 'left) (tekenaar 'mario-next!)
                       ((mario-adt 'move) 'left)
                       (tekenaar 'mario-next!))
      ((eq? key 'right) ((mario-adt 'move) 'right)
                        (tekenaar 'mario-next!))
      (else (void))))

谢谢

4

1 回答 1

1

您不能真正让计算机延迟交换本身。你能做的就是自己拖延。

您可以通过保持每帧递增的计数器来做到这一点。当该计数器达到一定数量时,您交换图像。这样,不是每帧交换它们,而是每 x 帧交换它们。

一个简单的方法如下:

(define counter 0)
(set! counter (modulo (+ counter 1) 50))
(if (= counter 0)
    ; start drawing the other image)
于 2017-12-09T11:21:14.860 回答