これらのイベントを作成する方法を知っておく必要があると思ったので、投稿の残りの部分はそれについてです、これらのイベントを保存するだけの場合は、何らかのリレーショナルデータベースを使用するか、テキストで記述し、スクリプト言語を使用します(彼は、君は)。:)
必要なのは、発生したイベントを認識し(1)、これらのイベントが要求するアクションを実行することです(メッセージを出力し、キーを押してください...)(2)。また、これらのイベントを1回だけ発生させたい場合もあります(3)。
基本的に、条件を確認してから、いくつかの動作をスケジュールします。
イベントを認識する方法(1)
- これらの「最初に遭遇した敵」、「新しいアイテムを獲得しました」などのイベントを認識したい
- 一般的なパーツが発生した場合、「敵に遭遇した」、「アイテムを獲得した」「特定のパーツを最初に確認する」、「新しいアイテムを獲得した」
イベントとは何ですか
より一般的な見方では、このような各イベントは次のもので構成されます。
- 前提条件、あなたはそれらをチェックします
- 前提条件が満たされたときに実行されるアクション(たとえば、「最初の敵を殺した!」、「AボタンとBボタンを押してコンボを作成」、「「Enter」を押して続行」、「キーを入力」を要求)
これらのイベントを保存する方法
一部のデータ構造では:
- 前提条件のリストがある(高水準言語で記述している場合は文字列またはコード)
- アクションのリストがあります(ストリングである可能性があり、Quakeエンジンはイベントにストリングを使用します)
リレーショナルデータベースに保存することもできますが、必要ないように見えますが、このゲームを大きくしたい場合は、作成する必要があります。
次に、これらの文字列/ものを解析する必要があります。または、PythonやLUAなどのスクリプト言語、またはLISPなどの言語を使用できます。すべての言語を解析して実行できます。:)
ゲームループでこれらのイベントを使用する方法(2)
次の2つのデータ構造が必要です。
- イベントのキュー(実行予定のイベントはここに配置されます)
- アクションのキュー(スケジュールされたアクション、イベントは実行されるアクションを意味します)
アルゴリズム:
- イベントの前提条件のいくつかが満たされていることを認識した場合、イベントキューに入れます
- (3)次に、必要に応じて、このイベントが1回だけ発生することを確認する必要があります。
- (アクションキューが空の場合)イベントキューにイベントがある場合アクションを配置しますアクションキューにイベントキューから削除します
- アクションがあればでアクションキューがあなたはそれによって要求されているものをやって起動します
- そのようなアクションが行われた場合アクションキューます
これらのアクション自体の作成方法(2)
「更新」機能を持つオブジェクトのリストを作成します。これらは、エンティティ(Quakeエンジン)またはアクター(Unrealエンジン)と呼ばれることもあります。
- これらのオブジェクトは、アクションキューでの開始が要求されたときに開始します。
- これらのオブジェクトは、他のタイマーなどの他のものに使用できます。Quakeでは、これらのエンティティはゲームロジック全体に使用されます。それについての資料を読むことをお勧めします。
アクション「何かを言う」
- 画面に何かを印刷する
- このメッセージを数秒間表示したい
- 「更新」:
- 変数remove_me_afterを作成し、経過した時間でそれを減らします
- 変数が0の場合、アクションキューからこのアクションを削除します
- また、このオブジェクトを削除します(または削除するようにスケジュールします...)
アクション「キーが必要」
- それはあなたがそれを作りたい方法に依存しますが、あなたはあなたがメッセージを作ると思います
- 「更新」」:
- 必要なキープレスイベントをチェックするだけです
- キープレスイベントを保持するためにおそらくいくつかの配列/キューが必要です
- その後、アクションキューから削除してオブジェクトを削除できます
学習する方法