C# 如何在c中的if()语句中调用多个函数#
所以我需要一个c#C# 如何在c中的if()语句中调用多个函数#,c#,if-statement,enums,keyboard-input,C#,If Statement,Enums,Keyboard Input,所以我需要一个c#if()语句,它可能看起来像这样?代码: ... if(CurrentGameState != gameState.gameLoading && gameState.mainMenu && keyboardState.IsKeyDown(Keys.Escape)) { CurrentGameState = gameState.mainmenu; } //I get error in: CurrentGameState != game
if()
语句,它可能看起来像这样?代码:
...
if(CurrentGameState != gameState.gameLoading && gameState.mainMenu && keyboardState.IsKeyDown(Keys.Escape))
{
CurrentGameState = gameState.mainmenu;
}
//I get error in: CurrentGameState != gameState.gameLoading && gameState.mainMenu part
...
这就是我使用上述变量的代码:
//Game States
enum gameState
{
gameLoading,
mainMenu,
gameOptions,
levelSelect,
gamePlaying,
gameOver
}
gameState CurrentGameState = gameState.gameLoading;
//Keyboard State
KeyboardState keyboardState = Keyboard.GetState();
有什么建议吗?游戏状态。主菜单是枚举值,而不是布尔值。你不能用你想要的方式使用它。你是有意这么做的吗
if (CurrentGameState != gameState.gameLoading &&
CurrentGameState != gameState.mainMenu &&
keyboardState.IsKeyDown(Keys.Escape))
gameState.mainMenu
是枚举值,而不是布尔值。你不能用你想要的方式使用它。你是有意这么做的吗
if (CurrentGameState != gameState.gameLoading &&
CurrentGameState != gameState.mainMenu &&
keyboardState.IsKeyDown(Keys.Escape))
可能是
if(CurrentGameState != gameState.gameLoading &&
CurrentGameState==gameState.mainMenu && keyboardState.IsKeyDown(Keys.Escape))
可能是
if(CurrentGameState != gameState.gameLoading &&
CurrentGameState==gameState.mainMenu && keyboardState.IsKeyDown(Keys.Escape))
我很抱歉用我的手机进行格式化,但我认为你在使用xna时,应该在switch语句中包含游戏状态,否则你的代码会很快变得混乱,而且效率低下
Switch(currentgamestate)
{
Case gamestate.loading:
If(pressing escape)
Currentgamestate = gamestate.mainmenu;
Break;
Case gamestate.mainmenu;
//todo
Break;
}
您的错误是因为您试图将两个条件链接在一起。如果currentgamestate未加载并且是主菜单,则需要为每个条件引用当前gamestate。。如果currentgamestate未加载且currentgamestate为主菜单,则我建议格式化,但从手机写入,但我假设您使用xna,您应该在switch语句中包含游戏状态,否则您的代码将很快变得混乱且效率低下
Switch(currentgamestate)
{
Case gamestate.loading:
If(pressing escape)
Currentgamestate = gamestate.mainmenu;
Break;
Case gamestate.mainmenu;
//todo
Break;
}
您的错误是因为您试图将两个条件链接在一起。如果currentgamestate未加载并且是主菜单,则需要为每个条件引用当前gamestate。。如果currentgamestate未加载且currentgamestate为mainmenu,它是否返回布尔值:
gameState.mainmenu
?还应使用圆括号将其括起来,if((currentgamestate!=gameState.gameLoading)&&gameState.mainmenu&&keyboardState.IsKeyDown(Keys.Escape))
我相信作者想要的是CurrentGameState==gameState.mainMenu
,而不仅仅是&&gameState.mainMenu&
,或者你只需要CurrentGameState!=gameState.gameLoading&&*CurrentGameState!=*gameState.mainMenu
等。是的,但这不是我需要帮助的代码。它是否返回布尔值:gameState.mainMenu
?还应该用圆括号括起来,如果((CurrentGameState!=gameState.gameLoading)&&gameState.mainMenu&&keyboardState.IsKeyDown(Keys.Escape))
我相信作者想要的是CurrentGameState==gameState.mainMenu
,而不仅仅是&&gameState.mainMenu&
,或者你只需要CurrentGameState!=gameState.gameLoading&&*CurrentGameState!=*gameState.main菜单
等。是的,但这不是我需要帮助的代码。