我製作了一款街機風格的遊戲,如果玩家精靈與敵人發生碰撞,它應該關閉遊戲屏幕並執行遊戲結束屏幕上的Game.screen.py文件顧名思義。 我的代碼,我曾經嘗試這樣做如下:用pygame打開一個新窗口
def sprite_collide():
global p_rect
global e_rect
if p_rect.colliderect(e_rect):
execfile('Game Over Screen.py')
我纔剛剛開始製作遊戲的結束畫面,使代碼如下:
import pygame, sys, time, random
from pygame.locals import *
pygame.init() #initializes pygame window
pygame.display.set_caption('KeyCast') #titlebar caption
GOSURF=pygame.display.set_mode((900,600),0,32) #sets main surface
gobackground = pygame.image.load('Game Over.png') #background image for game
"""--------------------------------------------------------------------------"""
while True:
def quitgame():
"""exits programme without any errors"""
for event in pygame.event.get(): #quitting process
if event.type==QUIT: #if player selects 'exit button' on window
pygame.quit() #pygame quit
sys.exit() #system quit
quitgame()
def Surface():
GOSURF.blit(gobackground,(0,0)) #background image
Surface()
pygame.display.update()
然而,每當精靈與敵人相撞我得到錯誤消息「NameError:全局名稱'GOSURF'沒有定義」「」。 不確定在這裏做什麼。
注:我在遊戲中使用了不同的名稱作爲GOSURF屏幕上的pygame表面,而遊戲腳本中的原始表面只是SURF。
剛做好了該怎麼做,也沒有關閉最後一個窗口並打開新窗口。但這是一個非常簡單的調整,我不得不使haha – gruntapocalypse
@gruntapocalypse很好看,你找到了一個解決方案。您可以發佈您的解決方案,以便其他人可以從中受益嗎? – salomonderossi
當然,下面貼出了一個答案 – gruntapocalypse