Update

2007年07月26日

【講座003】貼った絵を動かしてみる

今日は、Help「Your First Game: Microsoft XNA Game Studio Express in 2D」のStep 5に進んでみます。

予告したとおり、Step 5は貼った絵を動かすプログラムです。
今回は「Update」のところに、まず次の「赤字」の部分を加えます。

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

  // TODO: Add your update logic here

  UpdateSprite(gameTime);

  base.Update(gameTime);
}

このUpdateSpriteというのは、自分で作るメソッドです。ですので、今度は、このメソッドを足さなければなりません。「Draw」の下に書き加えましょう。あくまで書き加えるところが「赤字」ですよ。

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

  // TODO: Add your drawing code here

  spriteBatch.Begin(SpriteBlendMode.AlphaBlend);
  spriteBatch.Draw(myTexture, spritePosition, Color.White);
  spriteBatch.End();

  base.Draw(gameTime);

}

void UpdateSprite(GameTime gameTime)
{
  // Move the sprite by speed, scaled by elapsed time.
  spritePosition += spriteSpeed *
    (float)gameTime.ElapsedGameTime.TotalSeconds;


  int MaxX = graphics.GraphicsDevice.Viewport.Width -
    myTexture.Width;

  int MinX = 0;
  int MaxY = graphics.GraphicsDevice.Viewport.Height -
    myTexture.Height;

  int MinY = 0;

  // Check for bounce.
  if (spritePosition.X > MaxX)
  {
    spriteSpeed.X *= -1;
    spritePosition.X = MaxX;
  }

  else if (spritePosition.X < MinX)
  {
    spriteSpeed.X *= -1;
    spritePosition.X = MinX;
  }

  if (spritePosition.Y > MaxY)
  {
    spriteSpeed.Y *= -1;
    spritePosition.Y = MaxY;
  }

  else if (spritePosition.Y < MinY)
  {
    spriteSpeed.Y *= -1;
    spritePosition.Y = MinY;
  }
}

これでOKです。さて、どうなるでしょうか? いつも[F5]なので、本来のビルドの仕方、[F6]を押しましょう。これでビルドが行われて、「ビルド正常終了」となったら、[F5]で実行(本当はデバッグ開始)です。

動く絵








動き始めましたよね。Step 6は、この先はいろいろな改造方法があるよっていう話が書かれていますので、ここでは直接内容には触れませんが、実際、これを使って、いろいろとやってみたいなぁと考えています。

次回は、とりあえず、改造する前に、それぞれのプログラムコードが、何を意味しているのか、詳細に分析して行こうと思います。


dmatsu2005 at 05:04コメント(0)トラックバック(0) 
livedoor プロフィール

アロハ

痩せないと死ぬよっていう宣告を受けてしまったので、ダイエットに目覚めたプログラマー(約95kg)

広告

レンタルサーバーなら使えるねっと


Google AdSense
Google検索
訪問者数
  • 今日:
  • 昨日:
  • 累計:

オススメの書籍