2012-10-06 96 views
0

如果我嘗試做一個循環,它將無法在XNA中工作。我想使用它的是角色選擇(戰鬥機遊戲),因爲如果你按下一個鍵(選擇一個字符),它將會添加到當前的計數上,然後如果該計數等於某個數字,一條消息將會顯示兩個字符已被選中。這是爲了防止玩家選擇/加載超過一定數量的角色進入戰鬥場所。在我的情況下,我只想要加載2個字符,而不是更多。XNA:爲什麼不循環工作?

我的代碼是這樣的:

int count = 1; 

if (int i = 0; i < count; i++) 
    count = count + i; 

if (Keyboard.GetState().IsKeyDown(Keys.A)) // This will select Character A 
    count += 1; 
if (Keyboard.GetState().IsKeyDown(Keys.D)) // This will select Character B 
    count += 1; 

if (count == 2) // This checks to see if the total count has reached 2 
    // Message is displayed here 

任何人有什麼想法?

+0

當然這個我是否C#?即使編譯,if(int i = 0; i

回答

1

您在這裏有一個語法錯誤(似乎這個for循環樣結構甚至沒有必要的。什麼是它的目的是什麼?if (int i = 0; i < count; i++)

你的代碼是一個邏輯混亂,所以我不會嘗試在我的答案中建立它我不認爲我明白一切,但這是一個嘗試

你需要狀態,它只是變量,表明是否已加載或不加載,你可以簡單地使用兩個布爾變量如下:

//at the Game class level: 
bool char1Selected = false; 
bool char2Selected = false; 

//inside Update(GameTime) 
if (Keyboard.GetState().IsKeyDown(Keys.A)) 
{ 
    char1Selected = true; 
} 

if (Keyboard.GetState().IsKeyDown(Keys.D)) 
{ 
    char2Selected = true; 
} 

if(char2Selected && char1Selected) 
{ 
    //then both are selected. do something here according to your game's logic. 
}