Python 在列表中快速播放图片时,程序崩溃
我正在尝试使用一个列表将多张图片快速显示到屏幕上,并将坐标添加到单独的列表中 在一个带有图片名称的列表中,我希望它输出,当子弹与图像发生碰撞时,我将其从列表中删除,以便将其从屏幕上删除。但是我还没有做碰撞检测 而且,当我使用这些函数运行它时,程序只是崩溃了,没有任何错误或任何东西Python 在列表中快速播放图片时,程序崩溃,python,pygame,Python,Pygame,我正在尝试使用一个列表将多张图片快速显示到屏幕上,并将坐标添加到单独的列表中 在一个带有图片名称的列表中,我希望它输出,当子弹与图像发生碰撞时,我将其从列表中删除,以便将其从屏幕上删除。但是我还没有做碰撞检测 而且,当我使用这些函数运行它时,程序只是崩溃了,没有任何错误或任何东西 #create enemies lvl1 = [[alien2],[alien2],[alien1]] def create_alien_list(level_list): x = 0 y = 0
#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_”函数没有像应该的那样将图像作为第一个参数传递给blit
方法。查看此处所附的代码,可以看到“level_list[i]是一个列表,而不是一个图像。因此,如果这不是一个分档错误,只需将您的分档行更改为:
screen.blit(级别列表[i][0]、(级别列表[i][1]、级别列表[i][2])
。如果您确实没有收到任何错误消息,则可能是由于Pygame的blit代码中的错误参数验证导致程序出错 如果真的没有错误,那么它可能还没有崩溃。如果您在Windows中运行此命令,则应从命令行运行它,以便查看任何错误回溯。很可能它确实崩溃了,但你只是没有看到错误。目前,很难调试代码,因为很明显,大部分重要的代码都被遗漏了,因为仅使用上述代码不会产生任何有用的结果。什么叫创建外星人列表和绘制外星人?什么变量是级别列表?您如何确定此特定代码中存在错误?您确定create_alien_list和draw_alien在同一个列表上运行吗?您没有将列表作为参数传递给draw_aliens。您可能希望将每个aliens设置为a,并创建一个显示。通过这种方式,您可以轻松实现,并且还可以使用序列帮助删除死亡时的角色。是的,我确信这是代码,因为当我使用函数运行程序时,它不工作,python shell中没有出现错误,而当我不使用函数时,它运行良好。我在函数中使用lvl1列表,我只是relized我没有在两个函数中使用相同的列表。在外星人列表中:它仍然没有工作,它打开了窗口,然后弹出窗口,说程序已经停止工作和所有的废话。我很确定错误只出现在create_alien_list()中,因为当我只使用它时,它不起作用。我不知道问题出在哪里,我把它寄给了我的两个叔叔,其中一个非常忙,另一个看了看,也不知道问题出在哪里。