残機のカウントと表示、1UPのイベントをつくる

前回は当たり判定の調整と点滅無敵状態の作り方について説明をしました。今回はその続きで残機のカウントと表示、そして1UPイベントも作ってみましょう。

まだゴーストシューターを作っていない!という方はこちらの記事を参考に制作を進めてください。

メンタルハックWEB
Construct 3 の基本操作を学ぶ(1)~画面の見方と背景の設置 | メンタルハックWEB この記事では、Construct 3 のビギナーズガイドを参照しながら、ゴーストシューターという簡単なゲームを一緒に作っていきます。 https://www.construct.net/en/tutorials/...

ベースとなるゴーストシューター完全版は以下です。

あわせて読みたい
Construct 3 r388.2 ★★★★★ Launch Construct 3 r388.2. Make games with the world's easiest browser-based game creator. Try for free now and begin your game development journey.
Menu

残機のグローバル変数を作成し表示する

プレイヤーがモンスターに接触した際に、点滅するだけではなくて、残機が減る仕組みを作ります。

まずは新たにグローバル変数( PlayerHP )を作成し、初期値を 3 にしてください。グローバル変数の作成方法はこちらの記事で説明しています。

メンタルハックWEB
Construct 3 の基本操作を学ぶ(6)~スコアの表示 | メンタルハックWEB 前回はインスタンス変数を使って敵にHPを設定する方法について、簡単に解説をしました。今回は敵を倒したときにスコアが表示される仕組みを作ってみたいと思います。 ※この...

そしてこの残機を現在表示されているスコアの横に表示させます。UID レイヤーに表示させているテキストオブジェクトに以下を追記します。

”  Player: ” & PlayerHP

” ”の内側はそのまま入力した文字が表示され、PlayerHP はそのままグローバル変数の数字が表示されます。詳しくはさきほどの記事を参考にしてください。

初期値を 3 にしてあるので、プレビュー画面を確認するとこんな感じになっているはずです。

モンスターとの接触で PlayerHP から1引く

モンスターと接触した際に先ほど設定した PlayerHP (初期値 3 )から1を引く処理を作ります。

先ほど Flash を有効化したイベントにアクションを追記します。

アクション:System → Subtract from → PlayerHP1

これでプレイヤーがモンスターに接触したときに画面上部の Player : の数が減ったはずです。でもこのままだといつまでたってもプレイヤーは死なずに残機数がマイナス表示になってしまうので、これを改善します。

プレイヤーの消滅とゲームオーバー画面の再表示

それでは、いつまでも死ねないプレイヤーを死なせてあげましょう。そして前回一度消したゲームオーバー画面もここで復活させます。以下のイベントを作ります。

条件:System → Compare two values → PlayerHP≦ Less or equal0 

アクション1:Player → Destroy

アクション2:GameOverText (テキストオブジェクト) → Set visible → visible

では一度、プレビュー画面で動作を確認してみましょう。残機数がゼロになるとプレイヤーは死に、メッセージも表示されますが、スペースキーを押してもゲームが再開されません。

その理由は、スペースキーを押したときに PlayerHP を初期値に戻す処理を実行していないからです。PlayerHP がゼロのままだといつまでたってもプレイヤーは復活しないのです。

以前に作った条件(プレイヤー数がゼロでスペースキーを押す)に新たに以下のアクションを加えてください。

アクション:System →  Set value →  PlayerHP3

これでスペースキーを押したときに PlayerHP がに戻ってゲームがきちんと再開されます。

敵に1UPアイテムをドロップさせる

無事に残機を表示させることができました。

次に減った残機を増やす1UPアイテムを敵にドロップさせ、それを取ったら残機を1回復させるロジックを作ります。

手順としては、敵にランダムドロップさせ、プレイヤーがそれに触れたときに PlayerHP が1増える、というものです。

まずは新たにオブジェクトを配置します。名前は 1up としておきましょう。

※今回使ったオブジェクトは七三ゆきのアトリエ様からダウンロードさせていただきました。

まずはオブジェクト(1up)を Sprite コマンドで配置し、レイアウトの外に置いておきます。そして、以前に作ったモンスターのドロップに関するイベントに以下のようにサブイベントを追加しましょう。(もちろん数値は任意でOKです)

これで10%の確率で 1up をドロップさせることができます。同じく10%でマシンガンをドロップします。残りの8割は何もドロップしません。

後は 1up を取得したときに PlayerHP が1増加するイベントを作って完成ですね。

条件:Player → on collision with another object → 1up

アクション1:1up → Destroy

アクション2:System → Add to → PlayerHP1

これで目標だった一連の動きが実装されたはずです。プレビュー画面(F5)で確認して必要であれば数値等を調整しましょう。

Menu