私は現在、C++でSFMLを使用する方法を学ぶために簡単なゲームの作成に取り組んでいます。これまでのところ順調に進んでおり、SFMLに関するほとんどのことを基本的に理解しています。私が遭遇した問題は、時間ベースのイベントへの効率的な方法を見つけることです。
私が取り組んでいるゲームは、レベル中の事前定義された時間に敵の波が入ってくる非常に単純な宇宙侵略者風のゲームです。現在のところ、単純なイベントを複数回再利用できるようにするために、呼び出された各イベントで発生することになっていることを保持および制御するイベントクラスがあります。今のところ、SFML cloockを利用してループし、ゲームループの各反復で現在のレベルのすべてのイベントのベクトルを実行し、時計の経過時間をイベントの指定された時間と比較することで、これらのイベントをトリガーします。呼ばれる。問題は、ゲームループの反復ごとにイベントのベクトル全体をチェックする必要があることです。イベントリストが十分に長くなると、ゲームのパフォーマンスに影響を及ぼし始めるのではないかと心配しています。
各イベントにタイムラインでの位置の単純な数値IDを与え、次にどのイベントが実行されるかを単純に保存するというアイデアがありました。ループの反復ごとに1つのイベントの時間をチェックするだけで、これは機能します。かなりよく思いますが、ループの反復ごとにチェックを必要としない、より効率的な方法が可能かどうか興味がありましたか?イベント駆動型プログラミングを少し調べましたが、時間ベースのイベントに特に関連するものはあまり見つかりませんでした。
したがって、誰かがタイムラインまたは時間ベースのイベントトリガーの経験があり、より効率的なアイデアを理解するために見ることができるヒントやリソースがあるかどうか疑問に思っていましたか?どんな助けでも素晴らしいでしょう、ありがとう!