取得したスコアを徐々に加算して表示するスコア加算表現方法!
取得したスコアを、徐々に加算して表示する方法を紹介します!
例えば・・・
スコアを「10」獲得したら、「1」ずつ加算して最終的には「10」と表示する。
スコアを「1000」獲得したら、「100」ずつ加算して最終的には「1000」と表示する。
この表現方法だと、獲得したスコアがジャンジャン溜まっていってる感じがして
表現としてとても良いと思います。
~目次~
ウィジェット用のBPインターフェースの作成
「BPI_Widget」を開き
イベントを2つ作成します。
「UpdateScore」という名のイベントと
「SetScore」という名のイベントを作成します。
UpdateScore
「UpdateScore」のインプット値は、2つのInteger型。
「Score」と「GetScore」の2つです。
Score・・・スコア。
GetScore・・・取得したスコアの量。
SetScore
「SetScore」のインプット値は、Integer型。
Score・・・スコア。
スコアウィジェットの作成
スコアを表示するためのウィジェットの作成をします。
「WB_Score」と命名。
ウィジェットの構成は以下のようになっています。
画面の左上に表示されるようにしています。
BackgroundImage
BackgroundImageは、Imageのことです。
HorizontalAlignmentとVerticalAlignmentを以下のように設定します。
Score_VB
「Score_VB」は、VerticalBoxのことです。
HorizontalAlignmentとVerticalAlignmentは以下の通りです。
ScoreName
ScoreNameは、TextBlockのことです。
HorizontalAlignmentとVerticalAlignmentは、以下の通りです。
LineImage
LineImageは、Imageを使用しています。
「Score」と「0000000000」の間に配置しています。
区切り線を表現しています。
サイズは「Y」を「2」にして、細くしています。
HorizontalAlignmentとVerticalAlignmentは、以下の通りです。
Score_TB
Score_TBは、TextBlockのことです。
HorizontalAlignmentとVerticalAlignmentは、以下の通りです。
スコア加算処理
変数の作成
「AddScoreSpeed」のデフォルト値は、「0.01」になっています。
それ以外は「0」です。
イベントグラフ
ゲーム開始時、スコアの初期値を取得します。
ToTextの
「UseGrouping」をFalse。
「MinimumIntegralDigits」を「10」にしています。
「UseGrouping」をFalseにすると
値が1000に達したときに表示されるカンマ(,)を非表示にすることが出来ます。
「MinimumIntegralDigits」は、値を「10」にすると
「0000000000」という感じで、10桁まで表示することが出来ます。
スコアを取得した時に「UpdateScore」イベントが呼び出され
処理を行っていきます。
「UpdateScore」イベントが呼ばれた時に
スコア加算タイマーイベントがアクティブな場合
つまり、スコア加算処理がされている最中だった場合は
取得したスコアを、加算中のスコア(Score)に上書きし
スコアを表示するためのカスタムイベント「ShowScore」を呼び出します。
カスタムイベント「ShowScore」は、以下のようになっています。
イベント「UpdateScore」のScoreピンを、変数「NewScore」に
GetScoreピンを、変数「GetScore」に繋ぎます。
取得したスコア量に応じて、スコアの加算量を定義します。
「SetUpdateAmount」は自作マクロです。
「SetUpdateAmount」マクロの中身は以下の通りです。
例えば、取得したスコア量が「100」だった場合
スコアを「10」ずつ加算する。
取得したスコア量が「1000」だった場合
スコアを「100」ずつ加算する。
というような定義をしています。
もしこの定義をしていないと
例えば、取得したスコア量が「10000」だった場合
スコアを「1」ずつ加算するとしたら、結構時間がかかってしまうと思います。
そうならないために、「SetUpdateAmount」マクロで、スコアの加算量を定義しているのです。(伝わったかな・・・??)
・
・
・
スコア加算処理であるカスタムイベント「GraduallyUpdateTheScore」を呼び出す。
指定した速度(AddScoreSpeed)で、加算処理を繰り返し呼び出します。
カスタムイベント「GraduallyUpdateTheScore」の処理です。
Scoreの値が、NewScoreの値と同等かあるいはそれ以上かを判定しています。
Falseにつながる処理です。
スコアを決められた量ずつ加算していきます。
そして、スコアを表示するためのカスタムイベント「ShowScore」を呼び出します。
Trueにつながる処理です。
タイマーを止めます。
スコア取得処理
変数の作成
「ThirdPersonCharacter」を開き
1つ変数を作成します。
デフォルト値は、「0」です。
イベントグラフ
ゲーム開始時、ウィジェットを表示し、スコアの初期値をウィジェットに渡す。
「1」キーが押された時、スコアを「1000」加算する。
「2」キーが押された時、スコアを「10」加算する。
加算した結果の値と、加算量をウィジェットに渡します。
テスト
これでOKです。実際にプレイしてみましょう!
「1」キーを押したときに、スコアが「1000」まで「100」ずつ加算されて
「2」キーを押したときに、スコアが「10」まで「1」ずつ加算されていればOKです!
動画のようになっていればOKです!
それではまた!^^ノシ