2016-08-08 56 views
-5

Ich versuche, ein Spiel in Pygame zu machen und möchte Äpfel an zufälligen Orten hinzufügen, aber das zufällige Modul funktioniert nicht. Ich habe versucht, suchen online, aber der Kerl da konnte dies Mein Code ohne Probleme verwenden, und der Ausgang ist untenzufällige Modul Randrange funktioniert nicht in Pygame

impoort pygame 
imporrt random 

pygame.init() 

display_width = 1000 
display_height = 500 

gameDisplay = pygame.display.set_mode((display_width,display_height)) 
pygame.display.set_caption("SlikiSnake") 

clock = pygame.time.Clock() 
FPS = 15 

block_size = 10 

def GameLoop():  
    lead_x = display_width/2 
    lead_y = display_height/2 
    lead_x_change =0 
    lead_y_change =0 

    randAppleX = random.randint(0, display_width - block_size) 
    randAppleY = random.randint(0 ,display_height - block_size) 

    pygame.display.update() 

    gameExit = False 
    gameOver = False 

    while not gameExit: 

     while gameOver == True: 
      gameDisplay.fill(white) 
      message_on_screen("Game Over,press r to start again or Q to quit", black) 
      pygame.display.update() 
      for event in pygame.event.get(): 
       if event.type ==pygame.KEYDOWN: 
        if event.key == pygame.K_r: 
         GameLoop() 
        if event.key == pygame.K_q: 
         gameExit = True 
         gameOver = False 

     if lead_x >= display_width or lead_x < 0 or lead_y >=display_height or lead_y < 0: 
      gameOver = True 

     lead_x += lead_x_change 
     lead_y += lead_y_change 

     gameDisplay.fill(random) 
     pygame.draw.rect(gameDisplay,red,[randAppleX,randAppleY,block-size,block_size]) 
     pygame.draw.rect(gameDisplay,blue,[lead_x,lead_y,block_size,block_size]) 

     clock.tick(FPS)  
     pygame.display.flip() 
    pygame.quit() 
    quit() 

GameLoop() 
` 

aber der Fehler ist:

http://i.stack.imgur.com/caaPn.png

+0

Der Code, den Sie uns geben, ist nicht korrekt. Sie haben beide Male falsch geschrieben * import * bedeutet, dass Ihr Skript sofort abstürzen sollte, aber nach Ihrem Fehler stürzt es in Zeile 48 ab. Ihr Code ist 82 Zeilen, aber nach dem Fehler 'GameLoop()' ist in Zeile 134. Sie haben nicht definiert * weiß *, * schwarz *, * blau * oder * message_on_screen *. Zu einer Zeit haben Sie * block-size * anstelle von * block_size * verwendet. DeepSpace gab Ihnen den Grund zu Ihrem Fehler und er/sie hat Recht. –

Antwort

1
  1. Das nächste Mal schreiben Sie Ihren Code und Fehler direkt in Ihren Fragetext, nicht als Screenshot.

  2. Sie müssen random einem Tupel zwischen import random zu den von Ihnen geposteten Leitungen zugewiesen haben.

+0

hmm nein, habe ich nicht und ich habe meinen Beitrag bearbeitet, so dass Sie den gesamten Code sehen können. –

+0

@ArnavKundalia Fakt ist, dass 'random' ** ** ein Tupel ist, wenn Sie zu' randAppleX = random.randint (0, display_width - block_size) 'gelangen. Was erwartest du auch für die Zeile 'gameDisplay.fill (random)', da 'random' immer noch das importierte Modul ist? – DeepSpace

+0

Was ist die Alternative für dieses Problem .. und auch die gameDisplay.fill (** random **) ist eine Farbe, die von mir im Programm –