2016-12-01 50 views
-3

你好,我試圖運行該功能時,不斷收到此錯誤,並且, 選擇一種顏色,在這種情況下,它是粉紅色的。python NameError:全球名稱

import pygame 

進口SYS 進口菜單 進口rgbcolors 從pygame.locals導入* 從rgbcolors導入rgbcolor

高清的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() 

,這是我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行,主要在 text = 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

相關問題