XNA AnimateBox

Översikt

Detta exempel visar hur man animerar och översätter från logiska till visuella koordinater

Kod

Box.cs

    class Box
    {
        float m_speedX = 1.0f;

        internal void Update(Microsoft.Xna.Framework.GameTime gameTime)
        {
            float elapsedTime = (float)gameTime.ElapsedGameTime.TotalSeconds;

            m_x += elapsedTime * m_speedX;

            if (m_x > 1.0f)
            {
                m_x -= 1.0f;
            }
        }

        public float m_x = 0.0f;
        public float m_y = 0.5f;
    }

Game1.cs

...
      BoxView m_boxView;
      Box     m_box = new Box();

      protected override void Update(GameTime gameTime)
      {
            // Allows the game to exit
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
                this.Exit();

            m_box.Update(gameTime);
            // TODO: Add your update logic here

            base.Update(gameTime);
      }

      protected override void Draw(GameTime gameTime)
      {
            GraphicsDevice.Clear(Color.CornflowerBlue);

            m_boxView.drawBox(m_box);

            base.Draw(gameTime);
      }
...

BoxView.cs

...

class BoxView
    {

        private SpriteBatch m_spriteBatch;
        private Texture2D m_boxTexture;

        private int m_windowWidth;
        private int m_windowHeight;

        public BoxView(GraphicsDevice graphicsDevice, ContentManager content)
        {
            m_windowWidth = graphicsDevice.Viewport.Width;
            m_windowHeight = graphicsDevice.Viewport.Height;
            m_spriteBatch = new SpriteBatch(graphicsDevice);

            m_boxTexture = content.Load<Texture2D>("bubbles");

        }


        internal void drawBox(Box box)
        {

            int vx = (int)(box.m_x * m_windowWidth);
            int vy = (int)(box.m_y * m_windowHeight);

            Rectangle destrect = new Rectangle(vx-15, vy-15, 30, 30);

            m_spriteBatch.Begin();
            m_spriteBatch.Draw(m_boxTexture, destrect, Color.White);
            m_spriteBatch.End();
        }


    }

Välkommen till CoursePress

en utav Linnéuniversitets lärplattformar. Som inloggad student kan du kommunicera, hålla koll på dina kurser och mycket mer. Du som är gäst kan nå de flesta kurser och dess innehåll utan att logga in.

Läs mer lärplattformar vid Linnéuniversitetet

Studentkonto

För att logga in behöver du ett studentkonto vid Linnéuniversitet.

Läs mer om att hämta ut studentkonto

Inloggning LNU