Ich mache ein Tic-Tac-Toe-Spiel. Ich muss prüfen, ob ein Spieler auf ein Feld klickt, auf das er bereits geklickt hat.XNA - Mouse.Left Button wird mehr als einmal in Update ausgeführt
Problem ist Fehler wird im ersten Klick selbst angezeigt. Mein Update-Code ist:
MouseState mouse = Mouse.GetState();
int x, y;
int go = 0;
if (mouse.LeftButton == ButtonState.Pressed)
{
showerror = 0;
gamestate = 1;
x = mouse.X;
y = mouse.Y;
int getx = x/squaresize;
int gety = y/squaresize;
for (int i = 0; i < 3; i++)
{
if (go == 1)
{
break;
}
for (int j = 0; j < 3; j++)
{
if (getx == i && gety == j)
{
if (storex[i, j] == 0)
{
showerror = 1;
}
go = 1;
if (showerror != 1)
{
loc = i;
loc2 = j;
storex[i, j] = 0;
break;
}
}
}
}
}
showerror
auf 0 gesetzt wird, wenn die linke Taste angeklickt wird. Meine Matrix ist eine 3x3-Matrix zum Speichern von Informationen. Wenn es 0 ist, das heißt, es bereits clicked.So in der Schleife prüfe ich war, wenn store[i,j] == 0
dann showerror
auf 1 Jetzt in der Zeichenfunktion eingestellt habe ich diesen Aufruf für Error-
spriteBatch.Begin();
if (showerror == 1)
{
spriteBatch.Draw(invalid, new Rectangle(25, 280, 105, 19), Color.White);
}
spriteBatch.End();
Problem ist, wenn ich klicken auf leeren Platz verwandelt es sich in Quer aber Fehler wird mir