2016-05-21 5 views
0

Ich versuche, ein Spiel zu machen, in dem Sie den Apfel klicken müssen und dann geht es in zufällige Position. Sie haben 5 Sekunden (für jetzt), und Sie müssen das Apfelbild viele Male klicken, wie Sie cant.My Das Spiel funktioniert, aber ich habe zwei Probleme:
1) Nach dem Spiel endet das Programm nicht.
2) Die Zeit aktualisiert sich selbst (es flackert weiter) ich will das nicht. Wie behebe ich diese zwei Fehler?Wie man automatische Aktualisierung der Zeit in Pygame repariert?

Hier ist mein Code:

import pygame 
import time 
import random 
pygame.init() 

foodimg=pygame.image.load("food.png") 
foodrect=foodimg.get_rect() 

#Colours 
white = (255,255,255) 
black = (0,0,0) 
red = (255,0,0) 

#Game Display 
display_width = 1080 
display_height = 720 
gameDisplay = pygame.display.set_mode((display_width,display_height)) 
pygame.display.set_caption('Click It! ~ Snapnel Productions') 
gameDisplay.fill((white)) 

font=pygame.font.SysFont("Arial",30) 

a=6 
running=True 
while running: 
    gameDisplay.fill((white)) 
    time=pygame.time.get_ticks()/1000 
    if a==time: 
     print "Game over" 
     break 

    for event in pygame.event.get(): 
     if event.type==pygame.QUIT: 
      running=False 
      pygame.quit() 
      quit() 
     if event.type == pygame.MOUSEBUTTONDOWN: 
      # Set the x, y postions of the mouse click 
      x, y = event.pos 
      if foodrect.collidepoint(x, y): 
       foodrect.center=(random.randint(5,1060),random.randint(5,700)) 
       print "New Position: ",foodrect.center 
       continue 

    gameDisplay.blit(foodimg,foodrect) 
    pygame.display.flip() 
    showtime=font.render("Time: "+str(time),0,(0,0,0)) 
    gameDisplay.blit(showtime,(950,10)) 
    pygame.display.flip() 

Here ist mein Essen Bild.

+0

Für mich endet das Programm normal –

Antwort

0

Für mich endet das Programm normal (ich lief es auf Linux, Python 2.6). entfernen flockering:

gameDisplay.blit(foodimg,foodrect) 
#pygame.display.flip() < -- remove that 
showtime=font.render("Time: "+str(time),0,(0,0,0)) 
gameDisplay.blit(showtime,(950,10)) 
pygame.display.flip() # because you should do it after the text is drawed 

Flip Oberfläche zu aktualisieren verwendet wird. Sie müssen die Oberfläche aktualisieren, nachdem Sie alles gezeichnet haben. Was Sie tun, ist alles weiß zu füllen, zu aktualisieren und dann einen Text zu zeichnen, zu aktualisieren. So hast du jeden Tick einen weißen Text und eine weiße Schrift.