我正在尝试使用列表将多张图片blit到屏幕并将坐标附加到单独的列表中。
在列表中,使用图片的名称,我希望它输出,当子弹与图像碰撞时,我将其从列表中删除,以便从屏幕上删除它。但我还没有进行碰撞检测。
此外,当我使用这些函数运行它时程序崩溃它没有任何错误或任何东西。
#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
答案 0 :(得分:2)
您的“draw_aliens”函数未将图像作为第一个参数传递给blit
方法,因为它应该是。看看这里附带的代码,可以看到`level_list [i]是一个列表 - 一个图像。因此,如果这不是转录错误,只需将您的blitting行改为:
screen.blit(level_list[i][0],(level_list[i][1],level_list[i][2]))
。如果您确实没有收到任何错误消息,可能是由于Pygame的blit代码中的参数验证错误导致程序错误。