我正在尝试解包一个co-ord元组,然后迭代它以多次blit一个sprite:
def updateMap(self, playerPosition):
self.x_coord, self.y_coord = playerPosition
t = Tree(self.screen)
for x in range(self.x_coord):
for y in range(self.y_coord):
self.screen.fill((0,104,0))
t.drawTree((x, y))
但是我收到以下错误:
File "unnamed.py", line 26, in updateMap
for x, y in range(self.x_coord), range(self.y_coord):
ValueError: need more than 0 values to unpack
感谢有人能以正确的方式指引我朝着正确的方向前进。谢谢。
编辑:我已经编辑了上面的代码来迭代每个坐标,如果playerPostion是0.5,那么迭代变为(0,1)(0,2)(0,3)(0,4)( 0,5) - 但是虽然我没有收到任何错误,但似乎没有正确绘制树。谢谢..它似乎是答案,除了我的编码是错误的。答案 0 :(得分:1)
我认为这就是你想要的:
from itertools import product
self.x_coord, self.y_coord = playerPosition #playerPosition is a tuple
t = Tree(self.screen)
for x,y in product(range(self.x_coord+1), range(self.y_coord+1)):
self.screen.fill((0,104,0))
t.drawTree((x, y))
答案 1 :(得分:0)
也许你改变了:
self.x_coord = 0
self.y_coord = 0
playerPosition = self.x_coord, self.y_coord
为:
self.x_coord, self.y_coord = playerPosition
然后你将玩家的位置x和y输入到self.x_coord和self.y_coord
要遍历x和y的每个组合,你需要在y范围内的y范围内放置一个循环
for x in range(self.x_coord):
for y in range(self.y_coord):
self.screen.fill((0,104,0))
t.drawTree((x, y))
答案 2 :(得分:0)
我认为OP希望迭代X坐标的范围和Y坐标的范围,以便为每种情况创建(x,y)。
for x in range(self.x_coord):
for y in range(self.y_coord):
print(x, y)
答案 3 :(得分:0)
使用内置的Python zip函数,假设两个迭代的长度相同。如果没有,那么您需要先进行一些消毒,然后再确保它们。
for x, y in zip(range(self.x_coord), range(self.y_coord))