我正在pygame中制作蛇游戏,我需要制作一系列pygame rect。当我测试代码以查看基本思想是否有效时,它没有起作用。应该在什么时候打印
[[0,0],
[10,0],
[20,0],
,依此类推,直到达到最大的x值,然后将y值加10,当y值始终为0时,它仅打印x值。对于pygame和python来说,我是新手帮助将不胜感激。 我的代码:
class Grid:
def __init__(self, gridSize):
self.gridSize = gridSize
self.numX = int(screenX / gridSize)
self.numY = int(screenX / gridSize)
self.xList = []
for y in range(0, self.numY * 10, 10):
for x in range(0, self.numX * 10, 10):
self.xList.append((x,y))
if y == 0:
self.array = np.array(self.xList)
else:
np.append(self.array, self.xList)
self.xList = []
print(self.array)
答案 0 :(得分:0)
大多数(如果不是全部)numpy
命令不会就地修改其数组。他们返回一个新数组,但旧数组保持原样。
因此,您需要在else
下
else:
self.array = np.append(self.array, self.xList)
这将更新self.array
,使其包含新的附加数组。
这也解释了为什么您只看到y = 0
的打印输出,而看不到其他值。 (通过调试并逐步执行代码,您可能会得出相同的结论。也许下次?:-))
答案 1 :(得分:0)
对于初学者来说,您不需要遍历Y范围:
self.numY = int(screenX / gridSize)
必须为self.numY = int(
screenY / gridSize)