Ich begann mit Pygame und ich möchte einfaches Spiel zu tun. Eines der Elemente, die ich brauche, ist der Countdown-Timer. Wie kann ich die Countdown-Zeit (zB 10 Sekunden) in PyGame einstellen?Countdown-Timer in Pygame
Antwort
Auf dieser Seite finden Sie, was Sie suchen http://www.pygame.org/docs/ref/time.html#pygame.time.get_ticks
Sie laden Zecken einmal, bevor der Countdown beginnen (die ein Trigger im Spiel sein kann - das wichtigste Ereignis, was auch immer). Zum Beispiel:
start_ticks=pygame.time.get_ticks() #starter tick
while mainloop: # mainloop
seconds=(pygame.time.get_ticks()-start_ticks)/1000 #calculate how many seconds
if seconds>10: # if more than 10 seconds close the game
break
print (seconds) #print how many seconds
Es gibt mehrere Möglichkeiten, wie Sie this- hier tun kann man ist. Python hat keinen Mechanismus für Interrupts, soweit ich weiß.
import time, datetime
timer_stop = diatomite.datetime.utcnow() +datetime.timedelta(seconds=10)
while True:
if datetime.datetime.utcnow() > timer_stop:
print "timer complete"
break
Ein weiterer einfacher Weg ist einfach das Ereignissystem von pygame zu verwenden.
Hier ist ein einfaches Beispiel:
import pygame
pygame.init()
screen = pygame.display.set_mode((128, 128))
clock = pygame.time.Clock()
counter, text = 10, '10'.rjust(3)
pygame.time.set_timer(pygame.USEREVENT, 1000)
font = pygame.font.SysFont('Consolas', 30)
while True:
for e in pygame.event.get():
if e.type == pygame.USEREVENT:
counter -= 1
text = str(counter).rjust(3) if counter > 0 else 'boom!'
if e.type == pygame.QUIT: break
else:
screen.fill((255, 255, 255))
screen.blit(font.render(text, True, (0, 0, 0)), (32, 48))
pygame.display.flip()
clock.tick(60)
continue
break
Das ist eigentlich ganz einfach. Danke Pygame für die Erstellung einer einfachen Bibliothek!
import pygame
x=0
while x < 10:
x+=1
pygame.time.delay(1000)
Das ist alles, was dazu gehört! Viel Spaß mit Pygame!
pygame.time.Clock.tick
gibt die Zeit in Millisekunden seit dem letzten Aufruf clock.tick
(delta time, dt
), so können Sie es eine Zeitvariable zu erhöhen oder verringern verwenden.
import pygame as pg
def main():
pg.init()
screen = pg.display.set_mode((640, 480))
font = pg.font.Font(None, 40)
gray = pg.Color('gray19')
blue = pg.Color('dodgerblue')
# The clock is used to limit the frame rate
# and returns the time since last tick.
clock = pg.time.Clock()
timer = 10 # Decrease this to count down.
dt = 0 # Delta time (time since last tick).
done = False
while not done:
for event in pg.event.get():
if event.type == pg.QUIT:
done = True
timer -= dt
if timer <= 0:
timer = 10 # Reset it to 10 or do something else.
screen.fill(gray)
txt = font.render(str(round(timer, 2)), True, blue)
screen.blit(txt, (70, 70))
pg.display.flip()
dt = clock.tick(30)/1000 #/1000 to convert to seconds.
if __name__ == '__main__':
main()
pg.quit()
Versuchen Sie folgendes:
import time
counter = 10
while counter != 0:
print(counter)
counter -= 1
time.sleep(1)
Diese im Grunde eine Variable hat, dass 1 von jeder Zeit abgezogen wird es Schleifen. Dann verwenden wir time.sleep (1), um eine Sekunde zu warten.
'time.sleep' ist normalerweise keine gute Lösung, da das Spiel nicht mehr reagiert und die Ausführung von anderem Code blockiert. – skrx
- 1. Konstruktor CountDownTimer in Klasse CountDownTimer kann nicht auf bestimmte Typen
- 2. Android CountDownTimer
- 3. CountDownTimer-Dienst
- 4. Mocking CountDownTimer und Handler
- 5. Android Editierbare CountDownTimer Problem
- 6. Anhalten/Fortsetzen CountDownTimer Android
- 7. Abbrechen CountDownTimer Android Java
- 8. prüft CountDownTimer läuft
- 9. Android CountDownTimer wird nicht abbrechen
- 10. Stoppen und starten Sie CountDownTimer
- 11. Android: Fortschrittsbalken über CountDownTimer aktualisieren
- 12. Pygame-Spiele mit Pygame herunterladen?
- 13. Unicode-Fonts in PyGame
- 14. Unerwarteter Einzug in pygame
- 15. Radioknopf in Pygame?
- 16. Anklickbare Bilder in Pygame?
- 17. Ebenen in pygame ändern
- 18. UnboundLocalError in Pygame Gradientenfunktion
- 19. Objektfehler in pygame
- 20. glatte Bewegung in Pygame
- 21. Pygame sprite.spritecollide()
- 22. Pygame UnboundLocalError
- 23. Pygame - Importfehler
- 24. Probleme zum Abbrechen eines CountDownTimer Android Java
- 25. Pygame Zeitsteuerung
- 26. Pygame pygame.Rect.Clamp
- 27. CountDownTimer onfinish Methode nach Änderung Aktivität
- 28. HH: MM: SS-Format Android Studio CountdownTimer
- 29. pygame Installationsproblem in Mac OS
- 30. Shooting in pygame funktioniert nicht
Verzögerung wird nicht für bestimmte Szenarien funktionieren, da es ein bestimmtes Objekt nicht verzögert, sondern das gesamte Spiel. –