2016-12-01 2 views
-3

こんにちは私はこの関数を実行しようとするとこのエラーが発生し続けます。 この場合はピンクの色を選んでください。python NameError:グローバル名

# start screen 
pygame.init() 
screen1 = pygame.display.set_mode((500, 400)) 

# Fill background 
background = pygame.Surface(screen1.get_size()) 
pygame.draw.line(screen1, (255, 0, 0), (230, 230), (100, 211), 4) 
background = background.convert() 
background.fill((0, 0,0)) 


# Displaying text 
font = pygame.font.Font(None, 36) 
text = font.render("Alien", 23, ((rgbcolor(pink)))) 
textpos = text.get_rect() 
textpos.centerx = background.get_rect().centerx 
background.blit(text, textpos) 

screen1.blit(background, (0, 0)) 
pygame.display.flip() 

while 1: 
    for event in pygame.event.get(): 
     if event.type == QUIT: 
      return 
    screen1.blit(background, (0, 0)) 
    pygame.display.flip() 
    pygame.time.get_ticks() 

if __name__ == "__main__": 
    main() 

と、これは私のてRGBColor機能である:pygame.localsから

import pygame 

輸入SYS インポートメニュー 輸入rgbcolors は* rgbcolorsから がてRGBColor

デフメイン()をインポートするインポートします。

def rgbcolor(color): 
    red = (255, 0, 0) 
    green = (0, 255, 0) 
    blue = (0, 0, 255) 
    darkBlue = (0, 0, 128) 
    white = (255, 255, 255) 
    black = (0, 0, 0) 
    pink = (255, 200, 200) 

pass 

エラーコード。

C:\Python27\python.exe C:/Users/Peter/PycharmProjects/game1/game.py 
Traceback (most recent call last): 
    File "C:/Users/Peter/PycharmProjects/game1/game.py", line 44, in <module> 
    main() 
    File "C:/Users/Peter/PycharmProjects/game1/game.py", line 27, in main 
    text = font.render("Alien", 23, ((rgbcolor(pink)))) 
NameError: global name 'pink' is not defined 

Process finished with exit code 1 
+0

あなたは私達と全体のエラーメッセージを共有すると考えたことがありますか? – TigerhawkT3

+0

C:\ Python27 \ python.exe C:/Users/Peter/PycharmProjects/game1/game.py トレースバック(直近の最後の呼び出し): ファイル "C:/Users/Peter/PycharmProjects/game1/game.py" 、43行目、 main() ファイル "C:/Users/Peter/PycharmProjects/game1/game.py"、行26、メイン テキスト= font.render( "Alien"、23、(rgbcolor NameError:グローバル名 'ピンク'が定義されていません 終了コード1で処理が終了しました –

+2

ローカル変数を定義するだけで何もしない関数があります。引数は未定義の変数です。私はあなたがチュートリアルを見直すことで恩恵を受けると思います。 – TigerhawkT3

答えて

0

これを試してみてください。

import pygame 
from pygame.locals import * 


def rgbcolor(color): 
    colors = {'red': (255, 0, 0), 'green': (0, 255, 0), 'blue': (0, 0, 255), 
       'darkBlue': (0, 0, 128), 'white': (255, 255, 255), 'black': (0, 0, 0), 
       'pink': (255, 200, 200)} 
    return colors[color] 


def main(): 
    # start screen 
    pygame.init() 
    screen1 = pygame.display.set_mode((500, 400)) 

    # Fill background 
    background = pygame.Surface(screen1.get_size()) 
    pygame.draw.line(screen1, (255, 0, 0), (230, 230), (100, 211), 4) 
    background = background.convert() 
    background.fill((0, 0, 0)) 

    # Displaying text 
    font = pygame.font.Font(None, 36) 
    text = font.render("Alien", 23, rgbcolor('pink')) 
    textpos = text.get_rect() 
    textpos.centerx = background.get_rect().centerx 
    background.blit(text, textpos) 
    screen1.blit(background, (0, 0)) 
    pygame.display.flip() 
    while 1: 
     for event in pygame.event.get(): 
      if event.type == QUIT: 
       return 
     screen1.blit(background, (0, 0)) 
     pygame.display.flip() 
     pygame.time.get_ticks() 


if __name__ == "__main__": 
    main() 
+0

これは機能しますが、それを関数にしようとしていますか? –

+0

@PeterEvansこの関数が実行するタスクは何ですか? – eyllanesc

+0

@PeterEvansが私のソリューションを更新 – eyllanesc

関連する問題