ハイスコア処理の方法!(下準備)

今回やる事は、

 

ステージ制のゲームでのハイスコア処理

 

だ。

 

ゲーム内容としては、

 

スタート地点からゴール地点まで、何秒でたどり着けるか

というもの。

そして、クリアーした時間が「スコア」となる。速くゴールすればその時の時間が「ハイスコア」となる。

ステージ数は3つ。という体で行く。

 

処理全体。最終的にこうなる。

f:id:Free_Gamer:20180903195927p:plain

あまり1つの記事に長々と書きたくないので(めんどくせぇし)、小分けにして記事を出していく。

 

今回は、下準備だ。

 

用意するもの

ActorクラスのBP(記事内では「BP_Goal」という名前で出てくる)

・GameInstance(記事内では「MyGameInstance」という名前で出てくる)

・GameModeBase(記事内では「MyGameMode」という名前で出てくる)

・3つのマップ(レベル)

・レベルBP

・SaveGame(記事内では「SaveScore」という名前で出てくる)

 

「BP_Goal」の作成

前述の通り、ActorクラスのBPだ。

この「BP_Goal」は、ゴール地点としての役割を担う存在だ。

コンポーネント

f:id:Free_Gamer:20180903201444p:plain

Box・・・オーバーラップコリジョン。プレイヤーがオーバーラップしたらゴール!という判定をする為のもの。

ParticleSystem・・・ゴールだという事を分かりやすくするための目印のようなもの。

 

自分はこんな感じにした。派手な炎エフェクトで分かりやすいだろう。

f:id:Free_Gamer:20180903201653p:plain

変数

「StageID」という名のInteger型の変数だ。

これは、今何ステージ目をプレイしてるのかを示すための変数だ。

今回の処理でとても重要だ。

デフォルト値は「0」のままでいい。

f:id:Free_Gamer:20180904180042p:plain

 

「MyGameInstance」の作成

これはタイマー、つまり時間の「分」と「秒」を格納する為のもの。

今回ハイスコア処理をするうえで重要な存在となる。

変数

f:id:Free_Gamer:20180903202301p:plain

MinuteInstance・・・「分」を格納する為の変数

SecondInstance・・・「秒」を格納する為の変数

 

「MyGameMode」の作成

これは主にタイマー処理を行う為のもの。

処理は以下の通り。

f:id:Free_Gamer:20180903202842p:plain

 

「秒」の処理。

f:id:Free_Gamer:20180903202937p:plain

「秒」と「分」を、ゲームインスタンスに格納

「Minute」は「MinuteInstance」に。

「Second」は「SecondInstance」に。

f:id:Free_Gamer:20180903203131p:plain

「分」を更新する処理

「秒(Second)」が「60」に達した時、つまり「60秒」に達した時

Trueに処理が流れ、

f:id:Free_Gamer:20180904175308p:plain

「分(Minute)」に「1」を足す。つまり、「1分」経ったという事になる。

この時、「秒(Second)」が「60」以上行ったらおかしいから、「秒(Second)」を「0」にセット。

そしてまた「秒(Second)」が1秒おきに更新されていく・・・といった感じだ。

f:id:Free_Gamer:20180904175431p:plain

 

3つのマップ(レベル)の作成

3つレベルを作成する。

ステージ名はそれぞれ分かりやすく「Stage1」「Stage2」「Stage3」にしといた。

f:id:Free_Gamer:20180904180616p:plain

それぞれのレベルにゴール地点の役割を担う「BP_Goal」を配置しよう。

Stage1

f:id:Free_Gamer:20180904180929p:plain

Stage2

f:id:Free_Gamer:20180904180949p:plain

Stage3

f:id:Free_Gamer:20180904181009p:plain

もちろん自分の好きな位置に置いてくれて構わない。

 

レベルBPの作成

それぞれのレベルのレベルBPに以下のような処理を組む。

 

Stage1のレベルBP

f:id:Free_Gamer:20180904181247p:plain

Stage2のレベルBP

f:id:Free_Gamer:20180904181305p:plain

Stage3のレベルBP

f:id:Free_Gamer:20180904181321p:plain

「BP_Goal」から「StageID」変数を参照。

各レベルごとに数値をセットしている。

これは今回の処理でとても重要だ。

 

「SaveScore」の作成

SaveGameクラスのBP。

SaveMinute・・・タイマーの「分」を格納し、セーブする為の変数

SaveSecond・・・タイマーの「秒」を格納し、セーブする為の変数

HighScoreMinute・・・ハイスコアの「分」を格納し、セーブする為の変数

HighScoreSecond・・・ハイスコアの「秒」を格納し、セーブする為の変数

f:id:Free_Gamer:20180905200419p:plain

 

 今回はここまで。

 

次回は、実際にどのようにハイスコア処理をしていくのかを紹介する。

 

それではまた!^^ノシ