2Dプラットフォーマーのウォールジャンプ


14

私はxnaゲームにウォールジャンプを実装する方法を探していましたが、それに関する情報が見つかりません、誰かが助けてくれますか?

回答:


21

プレーヤーがジャンプ中に壁に衝突した場合(または必要に応じて落下した場合)、次の100ミリ秒の間フラグをオンにします。壁から離れる方向のX軸上のかなりの速度。ジャンプが実際に開始された場合は、フラグを早期にオフにすることを忘れないでください。


3
最初の文を修正する必要があると思います:「プレーヤーが壁に衝突するとき(ジャンプしているとき)...」それ以外の場合、プレーヤーは壁の隣の地面に静止してから壁ジャンプできます期待された。
CiscoIPPhone

@CiscoIPPhone:ええ、ありがとう。これにより、衝突後100ミリ秒とその後の間に奇妙な動作の変化が生じます。
カオス

2

正直なところ、ポイントチェックを行っただけです。そう:

if (falling AND left_key_pressed AND !point_free(x-1,y))
    doWallJump

yをy + sprite_width / 2(または-座標系に応じて)に変更して、上部(または下部)ではなく中央の左側をチェックするようにすることができます。こうやって Nが壁ジャンプ(最後の段落)の壁チェックを実装です。

その後、壁のジャンプをどれだけタイトにするかを決定する必要があります。プレイヤーが同じ壁に再び到達する前に、ジャンプの垂直速度が水平を超えると、同じ壁を壁ジャンプできなくなり、徐々に底に戻ります(壁ジャンプのマリオゲームのように) )。プレイヤーが壁に戻るのに十分なほど水平を弱くすることを許可すると、彼/彼女は壁を上に進むことができます(Meat Boyのように)。

言及されていない別のアプローチは、スーパーメトロイドです。そのゲームでは、壁にぶつかると、その壁から離れると、非常に短い「壁を離れる」アニメーションが再生されます。そのアニメーション中にジャンプすると、壁ジャンプを行います。(Super Metroidでは、プレイヤーがウォールジャンプを使用して壁を登ることもできますが、実際には少しのスキルが必要です(実際、Super Metroidでのウォールジャンプに関するすべてのスキルにはかなりのスキルが必要です。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.