2016-12-01 6 views
-3

Hallo, ich bekomme immer diesen Fehler, wenn ich versuche, die Funktion auszuführen, und Wählen Sie eine Farbe in diesem Fall ist es rosa.Python NameError: globaler Name

import pygame 

import sys Import-Menü Import rgbcolors aus pygame.locals importieren * von rgbcolors importieren RGBColor

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() 

und dies ist meine RGBColor Funktion.

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 

Fehlercode.

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

Haben Sie darüber nachgedacht, mit uns die gesamte Fehlermeldung zu teilen? – TigerhawkT3

+0

C: \ Python27 \ python.exe C: /Users/Peter/PycharmProjects/game1/game.py Traceback (letzter Aufruf zuletzt): Datei "C: /Users/Peter/PycharmProjects/game1/game.py" , Zeile 43, in main() Datei "C: /Users/Peter/PycharmProjects/game1/game.py", Zeile 26, in Haupt text = font.render ("Alien", 23, ((rgbcolor (pink)))) NameError: globaler Name 'pink' ist nicht definiert Prozess beendet mit Exit-Code 1 –

+2

Sie haben eine Funktion, die nur lokale Variablen definiert und sie wegwirft, mit einem Parameter, der nie benutzt wird mit einem Argument, das eine undefinierte Variable ist. Ich denke, Sie würden von der Überprüfung eines Tutorials profitieren. – TigerhawkT3

Antwort

0

Versuch mit diesem:

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

Das funktioniert, aber ich versuche, es zu einer Funktion machen ist es möglich zu tun? –

+0

@PeterEvans Was ist die Aufgabe, die die Funktion erfüllen würde? – eyllanesc

+0

@PeterEvans aktualisieren meine Lösung – eyllanesc

Verwandte Themen