私は現在、XNAでC#を使用するゲームを書いています。スプライトをロードしました。キャラクターが右に動くと彼は右に走っているように見え、左に動くと彼は左に走っているように見えます。
私はどこでもジャンプ能力を作成するための良いコーディング例を探していました。私は立つことができるすべての物理的なものを読みました、そして言うにはスペースバーを使用してジャンプする方法がわからないときは助けにはなりませんが、着地するまでもう一度ジャンプするだけでスペースを使用することを防ぐことができません。
私は現在、XNAでC#を使用するゲームを書いています。スプライトをロードしました。キャラクターが右に動くと彼は右に走っているように見え、左に動くと彼は左に走っているように見えます。
私はどこでもジャンプ能力を作成するための良いコーディング例を探していました。私は立つことができるすべての物理的なものを読みました、そして言うにはスペースバーを使用してジャンプする方法がわからないときは助けにはなりませんが、着地するまでもう一度ジャンプするだけでスペースを使用することを防ぐことができません。
回答:
これを定義します。
int gravity = 2, jump=50, spX=20,spY=20, surface=200;
bool click = false;
bool canJump = true;
Texture2D sprite;
MouseState m;
- -更新 - -
m = Mouse.GetState();
if (spY < surface)
{
spY += gravity;
}
else
{
if (spY == surface)
{
canJump = true ;
}
}
if (m.LeftButton == ButtonState.Pressed)
{
click = true;
}
if ((click) && (m.LeftButton == ButtonState.Released))
{
if (canJump)
{
click = false;
spY -= jump;
canJump = false;
}
}
--- EndUpdate ---
- -ドロー - -
spriteBatch.Draw(sprite,new Vector2(spX,spY),Color.White);
--- EndDraw ---
私はそれを試してみました、それはうまくいきます
このチュートリアルをご覧ください。http: //www.xnadevelopment.com/tutorials/thewizardjumping/thewizardjumping.shtml このサイトには、XNAに関連する本当に便利なチュートリアルもたくさんあります。
過去に私がやったことは、キャラクターに各方向の速度を保持させることです。ジャンプが必要なときは、単にvel_y-=(ここでジャンプ速度)と言います。そしてもちろん、私は一定の重力を持っています。
実装を検討すべきもう1つの本当に優れた機能は、「ボタンを長く押し続けるほど高くなる」という概念全体です。ゲームが単一の定数変数をジャンプするだけのときは嫌いで、ある程度の制御感を得ることができません。
ああ、壁のジャンプはかっこいい=]