KeyboardState keyState;
KeyboardState prevkeyState; //1イント前のキーの状態の履歴
int IsGridVisible = 0;
protected override void Update(GameTime gameTime)
{
keyState = Keyboard.GetState();
// ゲームの終了条件をチェックします。
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
// TODO: ここにゲームのアップデート ロジックを追加します。
if (keyState.IsKeyDown(Keys.G) && prevkeyState.IsKeyUp(Keys.G)) IsGridVisible = ++IsGridVisible %3;
prevkeyState = keyState;
base.Update(gameTime);
}
/// <summary>
/// ゲームが自身を描画するためのメソッドです。
/// </summary>
/// <param name="gameTime">ゲームの瞬間的なタイミング情報</param>
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
// TODO: ここに描画コードを追加します。
spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.LinearWrap, null, null);
spriteBatch.Draw(texture_checker, new Rectangle(50, 50, 512, 512), new Rectangle(0, 0, 512, 512), Color.White);
spriteBatch.End();
spriteBatch.Begin();
spriteBatch.Draw(texture_cat, new Rectangle(50,50,texture_cat.Width,texture_cat.Height), Color.White);
spriteBatch.End();
spriteBatch.Begin(SpriteSortMode.BackToFront,BlendState.AlphaBlend, SamplerState.LinearWrap, null, null);
switch (IsGridVisible)
{
case 0:
break;
case 1:
spriteBatch.Draw(texture_grid16, new Rectangle(50, 50, 512, 512), new Rectangle(0, 0, 512, 512), Color.White);
break;
case 2:
spriteBatch.Draw(texture_grid32, new Rectangle(50, 50, 512, 512), new Rectangle(0, 0, 512, 512), Color.White);
break;
default:
break;
}
spriteBatch.End();
base.Draw(gameTime);
}
}
最終更新:2012年07月31日 22:13