映射数组function/syntax 问题
Map array function/syntax problems
我正在为学校制作一个 python 小游戏,但我在理解要使用的语法时遇到问题。
def draw_detail_from_array():
for y in new_map_array:
for x, _ in enumerate(y):
if y[x] == "v":
mapx = y[x].index
mapy=new_map_array[y].index
DISPLAYSURF.blit(pygame.image.load("grass1.png"), (32, 32))
DISPLAYSURF.blit(pygame.image.load("grass1.png"), (mapx + 1) * 32, (mapy + 1) * 32)
所以我有一个二维数组,当我循环遍历它时,如果有 "v" 我希望它在与数组中的位置对应的位置放置一个精灵。
我遇到的问题是我不知道如何从当前的 x 和 y 中获取索引并将其用于 "blit" 精灵到屏幕位置(数组对应于20 x 15 的正方形网格,大小为 32 x 32 像素。)
该数组已经随机填充 "v" 替换代表空白的“_” space.
我在此基础上尝试了几种不同的方法,我觉得 stuck.Everything 我凭记忆尝试会给我这样的错误:
unsupported operand type(s) for +: 'builtin_function_or_method' and 'int'
所以我知道我要么没有使用正确的函数或语法,要么我的函数结构存在更大的总体问题。我对 python 还是比较陌生,这让我筋疲力尽。任何帮助将不胜感激。
mapx = y[x].index
mapy=new_map_array[y].index
因为index
这里有一个函数你必须这样调用它
mapx = y[x].index()
mapy=new_map_array[y].index()
如果省略括号,而不是函数的结果,您会将 函数本身 分配给 mapx
和 mapy
,导致 unsupported operand type(s) for +: 'builtin_function_or_method' and 'int'
简单的像这样怎么样:
def draw_detail_from_array():
x, y = 0, 0
for row in new_map_array:
for col in row:
if col == "v":
DISPLAYSURF.blit(pygame.image.load("grass1.png"), (x, y))
x += 32
y += 32
x = 0
注意不要反复加载图片;这是一个主要的性能问题。只需加载一次即可重复使用。
我正在为学校制作一个 python 小游戏,但我在理解要使用的语法时遇到问题。
def draw_detail_from_array():
for y in new_map_array:
for x, _ in enumerate(y):
if y[x] == "v":
mapx = y[x].index
mapy=new_map_array[y].index
DISPLAYSURF.blit(pygame.image.load("grass1.png"), (32, 32))
DISPLAYSURF.blit(pygame.image.load("grass1.png"), (mapx + 1) * 32, (mapy + 1) * 32)
所以我有一个二维数组,当我循环遍历它时,如果有 "v" 我希望它在与数组中的位置对应的位置放置一个精灵。
我遇到的问题是我不知道如何从当前的 x 和 y 中获取索引并将其用于 "blit" 精灵到屏幕位置(数组对应于20 x 15 的正方形网格,大小为 32 x 32 像素。) 该数组已经随机填充 "v" 替换代表空白的“_” space.
我在此基础上尝试了几种不同的方法,我觉得 stuck.Everything 我凭记忆尝试会给我这样的错误:
unsupported operand type(s) for +: 'builtin_function_or_method' and 'int'
所以我知道我要么没有使用正确的函数或语法,要么我的函数结构存在更大的总体问题。我对 python 还是比较陌生,这让我筋疲力尽。任何帮助将不胜感激。
mapx = y[x].index
mapy=new_map_array[y].index
因为index
这里有一个函数你必须这样调用它
mapx = y[x].index()
mapy=new_map_array[y].index()
如果省略括号,而不是函数的结果,您会将 函数本身 分配给 mapx
和 mapy
,导致 unsupported operand type(s) for +: 'builtin_function_or_method' and 'int'
简单的像这样怎么样:
def draw_detail_from_array():
x, y = 0, 0
for row in new_map_array:
for col in row:
if col == "v":
DISPLAYSURF.blit(pygame.image.load("grass1.png"), (x, y))
x += 32
y += 32
x = 0
注意不要反复加载图片;这是一个主要的性能问题。只需加载一次即可重复使用。