Construct 3 の基本操作を学ぶ(5)~敵にHPを設定する方法

前回はプレイヤーに弾を発射させる方法について、簡単に解説いたしました。今回は敵にHPを設定して一撃では倒れないようにしてみたいと思います。インスタンス変数という新要素を使いますが決して難しくはありません。

※この記事では、Construct 3 のビギナーズガイドを参照しながら、ゴーストシューターという簡単なゲームを一緒に作っていきます。

あわせて読みたい
Beginner's guide to Construct 3 ★★★★★ Thanks for choosing Construct 3! Let's get started making your first game. We'll be making the Ghost Shooter demo game. You'll learn everything you need to know...

完成版はこちらで確認が可能です。

あわせて読みたい
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

インスタンス変数とは

インスタンス変数とは、オブジェクトが持つことができる数字や値です。

それぞれのオブジェクトに別々に持たせることができます。今回はインスタンス変数を使って敵にHPを付与してみましょう。

まずは敵 ( Monster ) をクリックし選択します。すると左にプロパティウインドウが開きますが、その中に Instance variable という項目を探してください。

リンクをクリックすると小さなウインドウが開きますので Add new instance variable をクリックしましょう。

またウインドウが開きます。ここでインスタンス変数の詳しいことを設定していきます。まず名前を HP にしましょう。Type はそのまま number で大丈夫です。その下の Initial value は値を設定できます。

HPを5にしたいのでここでは5に設定してください。下部のOKをクリックして終了です。

なお、自動的に複製したすべての敵に同じインスタンス変数が設定されるので、一体にこの作業をするだけでOKです。そしてもし特定の敵のHPを増やしたいときは、その敵を選択し initial value を変更すればよいのです。

弾がヒットしたときHPを減らすイベント

これからやりたいことは、弾が敵に当たったときにHPを1減らし、HPが0になったときに敵が消滅するようにしたいのです。これらをイベントとして設定していきます。

まずページ上部のタブをクリックしイベントシートを開きます。そして Monster → Destroy にマウスカーソルを乗せた状態で右クリックをし Replace action をクリックします。これはアクションの書き換えをするコマンドです。

そして Monster → Subtract from( instance variable カテゴリ内)の順で選択をすると以下のようなウインドウが表示されますね。

ここはおそらくデフォルトで HP(number)value 1 となっているはずなのでそのままでOKです。下部の Done をクリックしてください。

subtract from というのは直訳すると、~から引くという意味で、ここでは「HPから1を引く」という設定をしたことになります。

HPが0になったときに敵を消滅させる

先ほど、弾が当たったときにHPというインスタンス変数を1引くというアクションを付けましたが、その代わりに敵を消滅させるというアクションを削除しちゃいましたね。

このままではどれだけ弾が当たっても敵は消滅してくれません。試しにプレビューで敵に弾を当ててみてください。いつまでも敵は消滅しませんよね。

そこで、「HPというインスタンス変数が0になったときに敵が消滅する」というイベントを作ってあげる必要があります。以下のイベントを作ってみましょう。もう慣れましたね。

条件: Monster → Compare instance variable → HP, Less or equal, 0

アクション1: Monster → Spawn another object → Explosion

アクション2: Monster → Destroy

HP, Less or equal, 0 という記述についてちょっと説明をしておきます。これはHPが0かそれ以下になったとき、という設定です。なぜ0になったときではだめなのか。

もし今後、一度に3ダメージを与える強力な追加ウェポンを作ったら、5→2→-1というふうにHPは減っていき0になることはありません。

だから0かそれ以下としておいたほうが後々困らないという理由なんです。

今回はここまでです。次回は敵を倒すとスコアをゲットできる仕組みを作ってみましょう。

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