少し問題があります。ゲームのタイトル画面またはメイン メニューで作業しています。メインウィンドウのスクリーンショットは次のとおりです。
そしてコード:
class MenuPrincipal
{
public Texture2D Fondo { get; set; }
public Texture2D Cursor { get; set; }
int cambiar = 0;
int tiempoTranscurrido;
KeyboardState teclaActual;
bool menuActivo;
public bool MenuActivo
{
get { return menuActivo; }
set { menuActivo = value; }
}
public MenuPrincipal(Texture2D fondo, Texture2D cursor)
{
Fondo = fondo;
Cursor = cursor;
}
public void Update(GameTime gameTime)
{
teclaActual = Keyboard.GetState();
tiempoTranscurrido = gameTime.ElapsedGameTime.Milliseconds;
if (tiempoTranscurrido > 50)
{
tiempoTranscurrido = 0;
if (teclaActual.IsKeyDown(Keys.Down))
{
if (cambiar > 2)
cambiar = 0;
else
cambiar++;
}
}
}
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(Fondo, new Rectangle(0, 0, 800, 600), Color.White);
switch(cambiar)
{
case 0: spriteBatch.Draw(Cursor, new Rectangle(325, 225, 16, 12), Color.White);
break;
case 1: spriteBatch.Draw(Cursor, new Rectangle(325, 281, 16, 12), Color.White);
break;
case 2: spriteBatch.Draw(Cursor, new Rectangle(325, 336, 16, 12), Color.White);
break;
}
}
}
}
ユーザーが下矢印キーを押したときに、カーソルを「un jugador」から「opciones」に移動し、「opciones」から「creditos」に移動します。ただし、ユーザーが下キーを押すと、カーソルが非常に速く移動します。キーを1回押すと、カーソルが1つのオプションに移動するように速度制限が必要です。「リミットフレーム」(変数tiempoTranscurrido
)を入れると、カーソルが動かなくなりました。何も置かないと、カーソルがとても速く動きます。