Ich versuche, ein Spiel in Python mit Pygame zu machen. Mein Code scheint richtig, aber ich bekomme den folgenden Fehler.Wie zu beheben UnboundLocalError in Pygame
> Traceback (most recent call last):
File "C:\Users\500198\Desktop\Dodge It.py", line 195, in <module>
gameLoop()
File "C:\Users\500198\Desktop\Dodge It.py", line 190, in gameLoop
runGame()
File "C:\Users\500198\Desktop\Dodge It.py", line 182, in runGame
x += x_change
UnboundLocalError: local variable 'x' referenced before assignment
Was ich versuche, die image.But aus irgendeinem Grund zu tun ist, bewegen sich die Variable wird nicht ändern ‚x‘ und gibt mir den obigen Fehler.
Lade Bild
carimg=pygame.image.load('food.png')
x=(display_width*0.45)
y=(display_height*0.48)
x_change =0
Auto Bild
Hier ist meine Funktion das Auto auf dem Bildschirm zum Zeichnen:
def car(x,y):
gameDisplay.blit(carimg,(x,y))
Das ist mein Spiel laufen up ist
def runGame():
gameExit = False
gameOver = False
while not gameExit:
while gameOver == True:
#Game Over message
gameDisplay.fill(white)
message_to_screen("Game over",
red,
y_displace=-50,
size="large")
message_to_screen("Press C to play again or Q to quit.",
white,
y_displace=50,
size="medium")
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_q:
gameExit = True
gameOver = False
if event.key == pygame.K_c:
gameLoop()
#Game Controls
for event in pygame.event.get():
if event.type == pygame.QUIT:
gameExit = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change = -5 #Change is x co ordinate by -5
elif event.key == pygame.K_RIGHT:
x_change = 5 #Change is x co ordinate by +5
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
x_change=0 #Player should not move up or down
x += x_change #X change since i need to move the image
gameDisplay.fill(white)
car(x,y)
pygame.display.update()
clock.tick(FPS)
Mein Spiel Loop
def gameLoop():
runGame()
pygame.quit()
quit()
Loop Anruf
gameLoop()
Ich schreibe diesen Code in Python 2.7.Ist das wegen falscher Syntax und Verwirrung habe ich zwischen Python 2.7 und Python 3. –