1

我正在尝试使用列表将多张图片传送到屏幕上,并将坐标附加到单独的列表中。

在一个带有图片名称的列表中,我希望它输出,当子弹与图像碰撞时,我将其从列表中删除,以便将其从屏幕上删除。但是我还没有进行碰撞检测。

此外,当我使用这些函数运行它时,程序只会崩溃,它没有任何错误或任何东西。

#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
4

1 回答 1

2

您的“draw_aliens”函数没有将图像作为第一个参数传递给该blit方法,因为它应该是。查看此处附加的代码,可以看到 `level_list[i] 是一个列表,而不是图像。因此,如果这不是转录错误,只需将您的 blitting 行更改为:

screen.blit(level_list[i][0],(level_list[i][1],level_list[i][2]))反而。如果您确实没有收到错误消息,则可能是由于 Pygame 的 blit 代码中的错误参数验证导致您的程序出现段错误。

于 2012-09-24T04:25:12.413 回答