【发布时间】:2021-01-23 23:59:12
【问题描述】:
我正在尝试制作一个国际象棋游戏,使用拾取移动棋子,因此用户单击一个棋子将其设置为选定的棋子,然后在他们想要将其移动到的方格上。这是第一次工作,但是当您单击不同的块以使其成为选定的块,然后单击一个空方块来移动它时,它会移动第一个选定的块。这是我的代码,提前感谢任何可以提供帮助的人。
string[,] Board =
{
{"BRook1", "BKnight1", "BBisop1", "BQueen", "BKing", "BBishop2", "BKnight2", "BRook2"},
{"BPawn1", "BPawn2", "BPawn3", "BPawn4", "BPawn5", "BPawn6", "BPawn7", "BPawn8"},
{null, null, null, null, null, null, null, null },
{null, null, null, null, null, null, null, null },
{null, null, null, null, null, null, null, null },
{null, null, null, null, null, null, null, null },
{"WPawn1", "WPawn2", "WPawn3", "WPawn4", "WPawn5", "WPawn6", "WPawn7", "WPawn8"},
{"WRook1", "WKnight1", "WBishop1", "WQueen", "WKing", "WBishop2", "WKnight2", "WRook2"},
};
MouseState mouseState = Mouse.GetState();
decimal decMousex = mouseState.X;
decimal decMousey = mouseState.Y;
y = Convert.ToInt32(Math.Floor(decMousex / 75));
x = Convert.ToInt32(Math.Floor(decMousey / 75));
if (mouseState.LeftButton == ButtonState.Pressed
&& Board[x,y] != null && pieceSelected == null)
{
pieceSelected = Board[x, y];
selectedX = x;
selectedY = y;
}
else if (mouseState.LeftButton == ButtonState.Pressed
&& Board[x,y] == null && pieceSelected != null)
{
Board[selectedX, selectedY] = null;
Board[x, y] = pieceSelected;
pieceSelected = null;
}
【问题讨论】:
-
所以,通常一个编程问题不需要描述业务逻辑(也就是你的游戏逻辑),只要说它总是好的......虽然它确实需要,是一个确切的描述在代码中(you 写的)没有按预期工作。这一切都表明您没有使用调试器逐步完成此操作以确定您的代码行为与您的预期不同的确切点(行)。
-
那么第一个问题是,您是否使用调试器逐步完成了此操作?
标签: c# xna monogame chess picking