0

私のプロジェクトでは、特定のポイントに到達すると移動を停止する列車を実行しています。この移動は glutTimerFunc によって実行されます。マウスをクリックした場所から特定の場所まで列車を開始したいのですが、問題はここにありますIS、その場所に到達した後もタイマーがまだ実行されているため、開始点を初期化しても機能しません(左の場所から継続します)。

ここで、タイマーを停止して、新しい場所の列車タイマーを開始する必要があります。

4

2 に答える 2

2

API ドキュメントには、次のように記載されています。

登録されたコールバックのキャンセルはサポートされていません。代わりに、トリガーされたときの値パラメーターに基づいてコールバックを無視します。

したがって、ブール値をソフトウェアに追加し、イベントがトリガーされるたびにイベントを無視します。イベント ドリブン タイマーではなくクロック ベースのタイマーを使用し、メイン ループが実行されるたびに時間指定の更新を手動で行う方がよいでしょう (最後の更新からの時間を検出し、更新ティックを実行するかどうかを決定します)。 (s)) ただし、長期的には。これは、物理学やその他のさまざまな時間ベースのシミュレーションがほとんどのプロフェッショナル ソフトウェアで処理される方法です。イベント ドリブン モデルを使用すると、時限イベントを見逃したり、非常に遅く処理したりすることがよくあります。

于 2013-10-09T16:11:38.927 に答える