2012-04-16 7 views
0

左右のキーを押すと、画面の下を左から右に移動するスプライトがあります。スプライトを作成する

私はスクリーンの下を動いているスプライトから何かを(私が望むどんなスプライトも)撃つことができ、そのスプライトがちょうど上に行くことを望みます。

どうすればいいですか?

+0

撮影ボタンを押すと、あなたがの座標に新しい弾丸オブジェクトを作成する必要がありますあなたが望むどんな方向にでも速度を与えます。 –

+0

これについてもっと説明してもらえますか、それともチュートリアルがありますか?私はちょうどXNAを学び始めているので、それは無名です。私はそれを探検し、例は通常彼らがすでに働いている現在のプロジェクトや別のクラスで何かを示しています。私はただスプライトをロードしたいと思います。スペースバーを押すと、スプライトが動いているスプライトの位置に表示され、スプライトが何かに当たったり、画面から出たりするまで動きます。 – Claud

+0

さて、まず、ユーザーがスペースバーを押したことに気づかなければなりません。あなたはそれを遠くまで持ってきましたか? –

答えて

1

は、コピーして貼り付け、これを正確にあなたがそれらのクラスを分割する際に、このような何かを見に起こってはいけない:

namespace SpaceInvadersGame 
{ 
    class Player : Microsoft.Xna.Framework.Game 
    { 
     Texture2D PlayerTexture; 
     Vector2 PlayerPosition; 

     public Player() 
     { 

     } 

     protected override void LoadContent() 
     { 
      PlayerTexture = Content.Load<Texture2D>(@"Images/freshman2");; 
      PlayerPosition = Vector2.Zero; 
      base.LoadContent(); 
     } 

     public Vector2 GetPosition() 
     { 
      return this.PlayerPosition; 
     } 

     public void Update() 
     { 
      KeyboardState keyboardState = Keyboard.GetState(); 
      if (keyboardState.IsKeyDown(Keys.Left)) 
       freshamPos.X -= freshmanSpeed; 
      if (keyboardState.IsKeyDown(Keys.Right)) 
       freshamPos.X += freshmanSpeed; 
      if(keyboardState.IsKeyDown(Keys.Space)) 
       theBullet = new Bullet(this); 
     } 

     public void Draw(SpriteBatch SpriteBatch) 
     { 

     } 
    } 
} 

namespace SpaceInvadersGame 
{ 
    class Bullet : Microsoft.Xna.Framework.Game 
    { 
     Texture2D BulletTexture; 
     Vector2 BulletPosition; 
     Player thePlayer; 

     public Bullet(Player player) 
     { 
      this.thePlayer = player; 
     } 

     protected override void LoadContent() 
     { 
      BulletTexture = Content.Load<Texture2D>(@"Images/bullet");; 
      BulletPosition = thePlayer.GetPosition(); 
      base.LoadContent(); 
     } 

     public void Update() 
     { 
      //in here is where you would just do something like: 
      //BulletPosition.Y += 1; 
     } 

     public void Draw(SpriteBatch SpriteBatch) 
     { 

     } 
    } 
} 
関連する問題