2016-05-04 27 views
0

ちょっと私は、コード内の混乱を減らすために関数内のpygameイベントを呼び出そうとしています。しかし、私はグローバル変数のエラーのためにプロセスを実行することができません。どんな助けもありがとう。Pygame関数の変数へのアクセス

from pygame.locals import * 
import pygame, sys 
def color(): 
    screen.fill((85,163,48)) 

def events(): 
for event in pygame.event.get(): 
    if event.type == QUIT: 
     pygame.quit() 
    if event.type == pygame.MOUSEBUTTONDOWN and event.button == LEFT: 
     print "left" 
#sets the game map variables 
tilesize = 100 
map_width = 600 
map_height = 300 
#initialises the game screen setting it up with the game map variables 
pygame.init() 
screen = pygame.display.set_mode((map_width,map_height)) 

while True: 
    color() 
    events() 
    pygame.display.update() 
+1

コードが正しくインデントされていないので、修正するのが最初のことになります。それを超えて、私たちにあなたの特定のエラーを教えてもらえますか? – Natecat

答えて

1

関数内からローカルに値にアクセスできない場合は、その値を関数に渡すだけです。このような単純なもので十分です:

def events(ev_list): 
    for event in ev_list: 
     if event.type == QUIT: 
      pygame.quit() 

あなたのゲームループ内であなたがそれを呼び出すと思います:代わり

event_list = pygame.event.get() 
events(event_list) 

(あまり望ましい)あなたが関数内からライブラリをインポートするか、変数を宣言することができますグローバル

関連する問題