0

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

画面の下部を移動しているスプライトから何か (必要なスプライト) を撮影し、そのスプライトを直接上に移動できるようにしたいと考えています。

どうすればこれを行うことができますか?

4

1 に答える 1

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)
        {

        }
    }
}
于 2012-04-16T06:19:19.780 に答える