0

ループを実行しようとしても、XNA では機能しません。私がそれを使用したいのは、キャラクター選択 (ファイター ゲーム) です。キー (キャラクターを選択する) を押すと、現在のカウントに追加され、そのカウントが特定の数に等しい場合、メッセージが表示されます。両方の文字が選択されたという表示。これは、プレイヤーが戦闘アリーナに一定量以上のキャラクターを選択/ロードするのを防ぐためです. 私の場合、2 キャラクターだけをロードし、それ以上ロードしたくありません。

私のコードはこれです:

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

誰かアイデアはありますか?

4

1 に答える 1

1

ここに構文エラーがあります (そして、この for ループのような構造は必要でさえないようです。その目的は何ですか?if (int i = 0; i < count; i++)

あなたのコードは論理的な混乱なので、私の答えではそれに基づいて構築しようとしません。私はすべてを理解しているとは思いませんが、ここに試みがあります。

何かがロードされているかどうかを示す単純な変数である状態が必要です。次のように、2 つのブール変数を単純に使用できます。

//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.
}
于 2012-10-06T02:12:41.633 に答える