0

Comp-160 クラスのプロジェクトを行っていますが、オンキー機能が奇妙なことをしています。

(define (KEY-PRESS W key)
(cond 
[(key=? key "left") (make-MOVEB 
                     (- 15 (MOVEB-x W))
                     (MOVEB-y W))]

[(key=? key "right") (make-MOVEB
                      (+ 15 (MOVEB-x W))
                      (MOVEB-y W))]))

コンテキスト myMOVEBは、バケツがシーンの地面に沿って左右に移動する位置を保持する構造です。この関数を実行すると、問題なく右に移動できますが、左に移動するたびにバケツが消えるか、開始点まで戻ってしまいます。

なぜこれが起こっているのか誰にも分かりますか?

4

1 に答える 1

1

これはおそらく問題になるには遅すぎると思いますが、あなたが言うとき

(- 15 (MOVEB-x W))

それはのようなもの15 - (MOVEB-x W)です; したがって、(MOVEB-x W)が100の場合、これは-85になりますが、これはおそらくあなたが望んでいたものではありません。あなたはおそらく欲しかっ(- (MOVEB-x W) 15)た。

于 2012-12-17T18:55:22.007 に答える