投稿

12月, 2021の投稿を表示しています

ランドストーカー on JavaScript作成記(4)

イメージ
ランドストーカー on JavaScript作成記(4) 初めに 前項の作成記(3) の最後で持上げ状態での移動モーションを作りました。 次は、置きモーションの仕上げと投げモーションです。 その前に背景オブジェクトの重ね合わせをどうにかすべく、 背景オブジェクトをNPC等と同じくスプライトに 変えようと作り変えを開始します。 試行錯誤を続けているうちに、スプライト描画が正しく行われるのが2x2までだった、という驚愕の事実が判明しました。 描画関連を全面改修するのが面倒になり、 移動可能オブジェクトを含むNPCにも重力を持たせる方向へと舵を切ります。 相変わらず進行方向が定まってませんが、フラフラと進んで行きます。 NPC/オブジェクトに重力処理を追加 置きモーションの仕上げと、その次の投げモーションに絶対に必要に成る重力の処理を作ります。 前項の作成記(3) に記述した通り、オブジェクトを置く動作とは ライルの前方の高さ三段目の位置に設置する事です。 通常であれば自由落下開始し、下に何かあればそこに乗るわけです。 落下する為には、重力の処理が必要ですね。 基本的にはライルの重力処理を流用すれば良いでしょう。 置きモーションの仕上げは、重力処理を書けば完了します。 持上げ可能オブジェクトは、全てNPCと同じ扱いにしてあります。 スプライト描画用のimageファイルを分ける都合で、 NpcClass初期化時に渡される種別パラメータが1000未満 の場合は人物や動物等の通常NPC、 種別パラメータが1000以上2000未満の場合はアイテム等のオブジェクト、 という感じで分けてます。 つまりNpcClassに重力の処理を書けば、NPCとオブジェクトの全てに重力が追加されます。 ほぼRyleClassからコピーしただけですが、書いてみたコードがコチラです。 いま読み返してみると、このコードはライルを考慮に入れてませんね。 NPCやオブジェクトが上から降ってくる場合には、ライルに突き刺さるでしょう。 そしてこのコードでどう変わったか、教会で試してみます。 本物っぽいですね。 上に乗ってる物が少し遅れて落ちる所なんか、まさに本物っぽいですね。 そして、NpcClassに書いたという事は通常のNPCにも重力が出来たはずですので、試してみます。 ベルが階段をトント