私はアーケードスタイルのゲームを作っています。プレーヤーのスプライトが敵と衝突した場合、ゲーム画面を閉じて、Game Over Screenのスクリプトであるgame over 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であるスクリーン上のゲームのパイゲームの表面に別の名前を使用しましたが、ゲームスクリプトの元のサーフェスはSURFです。
ちょうど何をすべきか分かりましたし、最後のウィンドウを閉じて新しいウィンドウを開くこともできませんでした。しかし、それは私がハハを作る必要があった非常に簡単な調整だった – gruntapocalypse
@ gruntapocalypseあなたが解決策を見つけたことをお読みください。あなたはあなたのソリューションを投稿できますか? – salomonderossi
もちろん、以下の回答を掲載しました。 – gruntapocalypse