Мой вопрос здесь заключается в том, что после того, как я нажал начальное изображение, на экране появились рисунки, изображения и полотна, но они вообще не будут работать. Я проверил, работают ли все этапы основной программы, и оказалось, что они работают. Однако я не смог обнаружить ошибку здесь. Я с подозрением относился к функции endgame (), но не знал, в чем проблема.
Это начальный экран игры, где вы можете нажать на начальное изображение, чтобы начать игру.
def start():
global screen, canvas, clock, sound, random
global player_1, x1, y1, score1
global player_2, x2, y2, score2
global starfish, s_x, s_y, starfish_list,starfish_quantity
global rock, r_x, r_y
global you_win,y_x,y_y
global start_button, sb_x, sb_y
mouse = pygame.mouse.get_pos()
click = pygame.mouse.get_pressed()
screen.blit(canvas,[0,0])
screen.blit(start_button,[sb_x,sb_y])
font_start=pygame.font.Font("DFTTNC5.TTC",50) #這個字體顯示數字有異常
text_start=font_start.render("Turtle Battle!",True,[0,0,0])
screen.blit(text_start,[sb_x-60,sb_y-80])
if 214+sb_x >mouse[0]>sb_x and sb_y+114>mouse[1]>sb_y:
if click[0]==1:
mainloop()
pygame.display.update()
Эта функция определяет, кто победит в итоге.
def End_Game():
global screen, canvas, clock, sound, random
global player_1, x1, y1, score1
global player_2, x2, y2, score2
global starfish, s_x, s_y, starfish_list,starfish_quantity
global rock, r_x, r_y
global you_win,y_x,y_y
global start_button, sb_x, sb_y
if len(starfish_list)==0 and score1>score2:
font_w1 = pygame.font.Font("DFTTNC5.TTC",50)
text_w1 = font_w1.render("Green Turtle", True, [134,53,20])
screen.blit(text_w1,[y_x+40, y_y-40])
screen.blit(you_win, [y_x,y_y])
pygame.display.update()
#time.sleep(10)
return False
elif len(starfish_list)==0 and score1<score2:
font_w2 = pygame.font.Font("DFTTNC5.TTC",50)
text_w2 = font_w2.render("Red Turtle", True, [134,53,20])
screen.blit(text_w2,[y_x+40, y_y-40])
screen.blit(you_win, [y_x,y_y])
pygame.display.update()
#time.sleep(10)
return False
Это основной цикл для запуска игры, после выхода из основного цикла экран должен вернуться в меню «Пуск».
def mainloop():
init()
running = False
while not running:
CheckUserControl()
Update_Screen()
Object_Collision()
if End_Game()==False:
running = True
Это основная программа. Таким образом, после того, как вы начнете игру, вы начнете играть в игру, и после определения победителя, вы должны вернуться в меню «Пуск». Если вы нажмете quit, программа будет остановлена.
renew = True
init()
while renew:
start()
for event in pygame.event.get():
if event.type == pygame.QUIT:
renew = False
pygame.quit()