KeyListenersが私の最大の障害であることが判明した最近まで、KeyListenersを大多数に使用していたため、Key Bindingsには少し慣れていません。KeyBindings を使用して keyReleased のようなイベントをどのようにプログラムするのか疑問に思っています。KeyListeners は、keyPressed、keyTyped、keyReleased の 3 つの簡単なメソッドを提供しましたが、キー バインディングでこれを実現する方法については少し混乱しています。
基本的に、ユーザーが UP を押すと、オブジェクトが上に移動するようにします。ただし、ユーザーが UP を放すと、オブジェクトは自動的に下に移動して、基本的な重力をシミュレートする必要があります。UpAction クラスを示す私のコードの一部を次に示します。
class UpAction extends AbstractAction
{
public void actionPerformed(ActionEvent tf)
{
north = true;
helitimer.start();
helitimer.start();
helitimer2.start();
repaint();
}
}
3 つのヘリタイマーは、オブジェクトの y 位置を継続的かつスムーズにインクリメントする一連のタイマーを開始するタイマー オブジェクトです。アクション upAction が呼び出されると、クラス UpAction が呼び出され、オブジェクトを移動するために 3 つのタイマーが開始されます。
とにかく、ユーザーが UP をリリースすると、アクションが呼び出されなくなり、タイマーが停止するようにすることはできますか?
どうもありがとう!