「ACTION GAME MAKER」の「攻撃」と「被ダメージ」
攻撃の命中
プレイヤーオブジェクトにHitArea2D/HitCollisionとAttackArea2D/AttackCollisionというものがあったのを覚えているでしょうか。
「ACTION GAME MAKER」では、AttackArea2DのAttackCollisionが、HitArea2DのHitCollisionにぶつかった際にダメージの処理を行うようになっています。
さらに、Godotの機能であるCollisionLayerとCollisionMaskという機能で「あたる」「あたらない」という機能を調整できます。
CollisionLayerとCollisionMask
前のパートの「壁判定」でも説明を行いましたが、Godotでは、衝突をCollisionLayerとCollisionMask機能で制御することができます。これは、レイヤーという名の通り、衝突判定に奥行きをもたせるものです。
以下のような設定パネルで、レイヤーとマスクを設定します。
レイヤーは、どこにあるか、マスクは、どのレイヤーにぶつかりたいか、ということで理解するのがわかりやすいかと思います。
例えば、Maskが1と2のAttackCollisionは、レイヤーが3しかないHitCollisionに命中することはできません。これを使って、自分自身の攻撃判定にあたる、といった自体を回避することができます。
ダメージの処理
攻撃が命中すると、ダメージの処理が自動で行われます、共にBaseSettingで設定できる、攻撃側オブジェクトの攻撃力分のダメージを、防御側オブジェクトのHPから差し引きます。
その後、同じくBaseSettingsで設定できる、「無敵」を設定することで、一定時間ダメージを受けない状態にすることができます。



