好的,所以我正在棋盘上创建一种益智游戏。到目前为止,为特定事物编写代码以及它们如何与其他事物交互相对容易,但我遇到了添加不可通行空间的问题,因为我似乎无法围绕一种方式来解决问题创造一个,或没有,或 20 个不可通行的物体。因为那时我需要将图像粘贴到矩形上,然后还要根据矩形的坐标来防止移动。如果需要,我可以更具体。只是在评论中询问。提前感谢您的帮助。
编辑:有人要求提供更多信息......所以这是我到目前为止所拥有的......其他人帮助我编写了一个为板上的每个空间生成矩形的函数......
def MakeBoard(upper_x=100, upper_y=100, size=100):
global ChessBoard
ChessBoard = []
for y in range(8):
row = []
for x in range(8):
coords = (upper_x + x * size, upper_y + y * size)
row.append(pygame.Rect(coords, (size, size)))
ChessBoard.append(row)
return ChessBoard
因此该函数会在板上生成空间。在这种类型的函数中将禁止移动,它会生成可供您使用的移动。基本上,它检查目标坐标是否在 (1,1) 和 (8,8) 之间,因此在棋盘上。可以被 ChessBoard[y][x] 引用
def RookMove(RXM, RYM):
VarReset()
if (RXM + 3) >= 1 and (RXM + 3) <= 8:
global ROption1Exists
ROption1Exists = True
if (RXM-3) >= 1 and (RXM-3) <= 8:
global ROption2Exists
ROption2Exists = True
if (RYM+3) >= 1 and (RYM+3) <= 8:
global ROption3Exists
ROption3Exists = True
if (RYM-3) >= 1 and (RYM-3) <= 8:
global ROption4Exists
ROption4Exists = True
为了禁止移动,我想在 If 语句中添加另一个条件,类似于... 列出不可通过对象的坐标并检查以确保您必须遍历的所有坐标都与元素中的元素不匹配名单。
不过,我想我可以自己解决这个问题。我遇到的主要问题是在生成列表时没有为板上的每个空间创建一个像 64 个 if 语句这样的巨大函数。
基本上,我正在寻求帮助的是如何,相对简单地,
A. 将图像粘贴到一些代表无法通过的地形的坐标上
B. 用无法通过的地形坐标填充列表,然后检查以确保玩家将要行驶的坐标不在列表中。或者,以其他方式,在我提供的示例函数的上下文中,禁止玩家移动,如果移动选项会让他穿过无法通过的地形。