我想在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))))
由于
答案 0 :(得分:1)
你无法让计算机延迟交换本身。你能做的就是自己推迟。
你可以通过保持每帧增加一个计数器来做到这一点。当该计数器达到一定数量时,您可以交换图像。这样,不是每帧交换它们,而是每x帧交换一次。
一种简单的方法如下:
(define counter 0)
(set! counter (modulo (+ counter 1) 50))
(if (= counter 0)
; start drawing the other image)