Language:
Page Info
Engine Version:

記憶ゲームのサンプル

CardGame_Board.png

記憶ゲームのサンプルは、シンプルな PC / モバイル用のロジック ゲームのサンプルです。追加コードのサポートなしで ブループリント のみでビルドされています。

ゲームロジック

BP_LogicMem ブループリントGameMode クラス から派生しています。この ブループリント には、 Default Pawn クラス、 HUD クラス、 Player Controller クラス、 Spectator クラス、 GameReplicationInfo クラスが 設定されています。

BP_LogicMem ブループリント にも グラフ が 2 つあります。EventGraph には、ゲームの初期設定、ゲームプレイに必要なロジック テスト、 メニューへ戻ったり [Hint] ボタンで全てのカードを表示するなどの追加機能が含まれています。FinishGame はプレイヤーの勝敗、プレイヤーに与えられる星の数、ゲーム終了時に必要なクリーンアップに対応します。

BP_Counter は残りの移動数が 3 以下になると移動数用のテキストの色だけでなく表示する移動数を変更するため、 Blueprint Interface を使って BP_LogicMem により呼ばれます。

カード処理

BP_DeckMemBP_CardMem ブループリント は、ゲームにおいてカードがどのように定義されレイアウトされるのかを管理するプライマリ ブループリント です。ゲームレベル内に置かれている 1 つの BP_DeckMem のインスタンスが BP_CardMem のスポーン処理をしています。

BP_DeckMem には、カードデックの作成およびシャッフル、カードのスポーン、カードのをボード上への配置、 [Hint] ボタン押下時の全てのカードの表示のロジックが含まれています。デックをシャッフルするネットワークは Shuffle 機能に格納されており、 新規ゲームの準備中にメインとなる EventGraph に呼び出されます。デックをシャッフルした後、カードの合計数に応じて異なるカード配置で BP_DeckMem がカードをスポーンします。ボード上にはどの位置にもインデックスがあります。 CardDeckObjects 配列には BP_CardMem ブループリント が含まれていますが、 CardDeckShuffled 配列にはそのインデックス用のカードタイプの情報があります。BP_DeckMem の Rotate Event は [Hint] ボタンが押されると全てのカードをめくります。

BP_CardMem はそれぞれのカード上の写真を定義し、カードの配置、カードめくり、カードの削除のアニメーションの定義、カードの比較時に使用する ParticleEffects とサウンドを設定します。

CardGame_ParticleEffects_Right.png

Input をクリックする

BP_PlayerControllerMem ブループリント は Mouse Interface を有効化します。クリック イベントは有効化され、マウスオーバー イベントは有効化されません。クリック イベントを含む ブループリント は BP_MenuMem 、BP_CardMem 、 BP_Scoreboard です。 これらの Assign OnClicked ノード はすべて ReceivedBeginPlay からアクティベートされ、プレイヤーがゲームを開始すると発行されます。

Assign OnClicked ノード はデリゲート OnClicked と結びついたイベントを作成します。デリゲートは ブループリント のコンポーネントにステータスを報告しステート変更に応じてイベントをトリガする方法です。 例えば、ゲームの [Hint] ボタンがクリックされると、 クリックされたことをボタンが報告し、[Hint] ボタンの OnClicked デリゲートがトリガされ、並べられた全てのカードをめくるノードのシーケンスをアクティベートします。

変数 BlockClick は、プレイヤーがめくったカードまたはめくる過程にあるカードをクリックしないようにします。

フローズン カメラ

BP_LogicMem ブループリントSpectatorPawn をデフォルトの Pawn クラスとして定義します。記憶ゲーム用の Level ブループリント は PlayerStart に SpectatorPawn を配置し、 SpectatorPawn のプロパティはゲームプレイ中ずっとカメラをフローズしたままにします。

メニュー

Memory Game スタート メニューは StaticMeshComponents を使った BP_MenuMem ブループリント の簡単な設定です。TextRenderComponents はテキストと数字に、 Timeline はメニューをゲーム ウィンドウの外に移動するために使用されています。
メニューを使って、使用カード数、揃った時点でゲーム終了となるブラックカードのペアの使用可否についての変数を設定します。これらの変数は、 BPI_Communication 経由で BP_LogicMem と BP_DeckMem ブループリント へ送られます。

CardGameMenu.png

BP_Scoreboard ブループリントStaticMeshComponentsTextRenderComponents の組み合わせを使用してゲーム終了時に表示するサマリ メニューを作成します。

CardGameEndMenu.png