我正在尝试使用列表将多张图片传输到屏幕,并将坐标附加到单独的列表中。
在带有图片名称的列表中,我希望它输出,当子弹与图像碰撞时,我将其从列表中删除,以便将其从屏幕上删除。但我还没有进行碰撞检测。
此外,当我使用这些函数运行它时,程序只是崩溃,没有任何错误或任何东西。
#create enemies
lvl1 = [[alien2],[alien2],[alien1]]
def create_alien_list(level_list):
x = 0
y = 0
i = 0
alien_w = 0
alien_h = 0
for row in level_list:
x = 10
for col in row:
if col: level_list[i].append([x,y])
x += alien_w + 10
i+=1
b_y += alien_h + 5
def draw_aliens():
i = 0
for each in alien_list:
screen.blit(level_list[i],(level_list[i][1],level_list[i][2]))
i+=1
最佳答案
您的“draw_aliens”函数没有将图像作为第一个参数传递给blit
方法,正如它应该的那样。查看此处附加的代码,可以看到 `level_list[i] 是一个列表 - 而不是图像。因此,如果这不是转录错误,只需将您的 blitting 行更改为:
screen.blit(level_list[i][0],(level_list[i][1],level_list[i][2]))
。如果您确实没有收到错误消息,则可能是由于 Pygame 的 blit 代码中的参数验证错误导致程序出现段错误。
关于python - 在列表中位图传送图片时程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12557111/