我目前正在用pygame制作潜水艇游戏,当我将所有级别放入一个python程序时遇到错误。由于某些原因,在第二级和第三级之间切换不起作用。它引发错误:
File "C:\Users\Moji podatki\Documents\Python programi\Podmornica\submarine.py", line 820, in naris
screen.blit(mina, (self.x1, self.y1))
pygame.error: display Surface quit
我试图用return语句停止每个级别(功能),但没有运气,我也搜索了互联网,发现没有任何对我有用的东西。显然,该错误应该是程序结束时正在运行的东西,但是我在那一行什么都没找到。这是代码:
class Mina():
def __init__(self, x1, y1, x2, y2):
self.x1 = x1
self.y1 = y1
self.x2 = x2
self.y2 = y2
self.eksplozija1 = False
self.eksplozija2 = False
self.okvir1 = (self.x1, self.y1, 84, 196)
self.okvir2 = (self.x2, self.y2, 84, 196)
self.ekspl_okvir1 = (self.x1, self.y1, 268, 216)
self.ekspl_okvir2 = (self.x2, self.y2, 268, 216)
def naris(self):
if not self.eksplozija1:
self.okvir1 = (self.x1, self.y1, 84, 196)
#pygame.draw.rect(screen, (255,125,125), self.okvir, 2)
screen.blit(mina, (self.x1, self.y1))
else:
pygame.draw.rect(screen, (0,0,0), self.ekspl_okvir1, 2)
screen.blit(ekspl, (self.x1, self.y1))
eksplozija.play()
if not self.eksplozija2:
self.okvir = (self.x2, self.y2, 84, 196)
#pygame.draw.rect(screen, (255,125,125), self.okvir, 2)
screen.blit(mina, (self.x2, self.y2))
else:
#pygame.draw.rect(screen, (0,0,0), self.ekspl_okvir2, 2)
screen.blit(ekspl, (self.x2, self.y2))
eksplozija.play()
igralec = podmornica(150, 300, 10)
podmornca = nasprotnik(-1300, 250, 5, 1900, 250, 5)
eksploziv = Mina(1000, 510, -1000, 510)
metki = []
def grafika():
clock.tick(60)
screen.blit(ozadje, (0,0))
screen.blit(dno, (dnox, 500))
igralec.naris()
podmornca.premik()
eksploziv.naris()
for metek in metki:
metek.naris(screen)
pygame.display.flip()