glutkeyboardfunc
と を使用して画面上のスプライトを制御していますkeyDown
。
例えば。次のコードを実装すると、スプライトが正常にジャンプします。
if(keyDown[119]){//w key = up
sprite_y +=40.0f;
spriteT=spriteJ;
}
空中にいる間、スプライトは次のコードを使用して戻ります。
if(sprite_y>0){ gravity-=10*delta; sprite_y+=gravity; }
else{ gravity=0; }
私が抱えている問題は、w
キーに指を置いたままにすると、スプライトが永遠にジャンプして上昇し続けることです。
これは、メソッドを使用しているためだと理解しているので、keyDown
これを試しました:
if(keyDown[119]){//w key = up
sprite_y +=40.0f;
spriteT=spriteJ;
keyDown[119]=0;//reset keyDown to keyUp
}
でも運がなかった…
keyDown
特定の期間に制限したり、一度だけ押されたように動作したりする方法はありますか? ありがとう。
編集この質問が投票に値する理由がよくわかりません。あなたもそれを読みましたか?