Tôi đang tạo trò chơi Tic-Tac-Toe. Tôi cần kiểm tra xem người chơi có đang nhấp vào một hình vuông mà họ đã nhấp vào không.XNA - Nút Mouse.Left được thực thi nhiều lần trong Bản cập nhật
Lỗi sự cố được hiển thị trong chính lần nhấp đầu tiên. mã cập nhật của tôi là:
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
được đặt thành 0 bất cứ khi nào nút trái được nhấp. Ma trận của tôi là ma trận 3x3 để lưu trữ thông tin. Nếu nó là 0 có nghĩa là nó đã được đã clicked.So trong vòng lặp để kiểm tra xem store[i,j] == 0
sau đó thiết lập showerror
để 1. Bây giờ trong chức năng vẽ tôi đã thực hiện cuộc gọi này cho showerror
spriteBatch.Begin();
if (showerror == 1)
{
spriteBatch.Draw(invalid, new Rectangle(25, 280, 105, 19), Color.White);
}
spriteBatch.End();
Vấn đề là bất cứ khi nào tôi bấm trên vuông rỗng nó biến thành cross nhưng lỗi được shown.Please giúp tôi ra