2017-12-07 21 views
0

私はDrRacketで私のゲームのためのアニメーションを作ろうとしています。左のボタンを押したときに、私のイメージに実行中のアニメーション(脚を開く - >脚を閉じた状態)をします。イメージ交換を遅らせる方法はありますか?コンピュータはスワップをすばやく実行し、スワップが起こっていないことを認識しません。 - >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秒間に2回)をアニメーション化する方法を速く決定する必要があり、あなたは時間との変化のアニメーションを追加する必要があるだけで、すべての0.5あなたは今のようにすべてのフレームの代わりにセコンドまたはそうです。 – Ondrej

+0

これはどのようにラケットで行うのですか?手続き "時間"はありますか? – KillerZ224

答えて

1

あなたは本当にコンピュータがスワップ自体を遅らせることはできません。あなたができることは、それを自分で遅らせることです。

これは、フレームごとに増分するカウンタを保持することで可能です。そのカウンタが一定の数に達すると、イメージが入れ替わります。この方法では、すべてのフレームをスワップする代わりに、xフレームごとにスワップします。

次のようにこれを行う簡単な方法は次のとおりです。

(define counter 0) 
(set! counter (modulo (+ counter 1) 50)) 
(if (= counter 0) 
    ; start drawing the other image) 
+0

私はちょっとあなたの答えを考えなければなりませんでしたが、それは私の問題を解決しました。ありがとう! – KillerZ224

関連する問題