我有一个小问题。我正在为我的游戏使用标题屏幕或主菜单。这是主窗口的屏幕截图:
和代码:
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”。然而,当用户按下向下键时,光标移动得非常快。我想要一个速度限制,这样当我按一次键时,光标会移动一个选项。如果我放置一个“限制框架”(变量tiempoTranscurrido
),光标永远不会移动。如果我什么都不放,光标移动得非常快。