我制作了一款街机风格的游戏,如果玩家精灵与敌人发生碰撞,它应该关闭游戏屏幕并执行游戏结束屏幕上的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