2016-12-15 7 views
2

Ich bin sehr verwirrt darüber, wie man das angehen und ich kann es nicht zum Laufen bringen. Also, wenn Sie Schlange gespielt haben, werden Sie sich erinnern, dass zu bestimmten Zeiten ein Bild erscheinen würde, dass Sie mehr Punkte bekommen würden, wenn Sie es gegessen hätten, aber wenn Sie es verpasst hätten, würde es verschwinden (dh nicht für immer dort bleiben, bis Sie es gefangen haben.)Bilder erscheinen zufällig und verschwinden nach einer bestimmten Zeit

ich Code geschrieben haben, die mit der Zeit arbeitet (in dem Sie einen Schirm), wie unten zu aktivieren:


if (count % 35 == 0): 

    ang = random.choice(angles) 
    particles.append(Particle(red, 5, ang, user)) 
    score += 10 
    score_graphic = font.render("Score " + str(score), 1, white) 

    total_shields += 1 

    if total_shields > 10: 
     total_shields = 10 

count += 1 

curr_time = time.time() 

if space_press: 
    if (curr_time - new_time) > 0.3: 
     new_time = time.time() 
     total_shields -= 1 

    shield_on = total_shields > 0 

wie kann ich implementieren das verschwinden Bild in pygame? Ich weiß, das ist unkonventionell, aber wenn du helfen könntest, würde ich es begrüßen, da ich es in der letzten Stunde nicht geschafft habe.

Best, Seyed

+0

Verwendung 'hide_time = curr_time + random_time' und prüfen' hide_time' in mainloop angezeigt werden oder nicht Bild angezeigt werden soll. – furas

Antwort

0

Verwendung Variablen mit der Zeit von start showing und end showing.

Es ist eine beliebte Methode, um verschiedene Elemente im Spiel zu steuern.

import pygame 
import random 

# - init - 

pygame.init() 

screen = pygame.display.set_mode((800, 600)) 

# - objects - 

display_apple = False 
start_showing = None 
end_showing = None 

current_time = pygame.time.get_ticks() 

# show first time 
start_showing = current_time + random.randint(1,5)*1000 

# - mainloop - 

clock = pygame.time.Clock() 

running = True 

while running: 

    # - events - 

    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      running = False 
     elif event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_ESCAPE: 
       running = False 

    # - updates - 

    current_time = pygame.time.get_ticks() 

    if display_apple: 
     # is it time to hide ? 
     if end_showing and current_time >= end_showing: 
      # hide it 
      display_apple = False 
      end_showinge = False 
      # set time when to show 
      start_showing = current_time + random.randint(1,5)*1000 
    else: 
     # is it time to show ? 
     if start_showing and current_time >= start_showing: 
      # show it 
      display_apple = True 
      start_showing = False 
      # set time when to hide 
      end_showing = current_time + random.randint(1,5)*1000 

    # - draws - 

    screen.fill((0,0,0)) 

    if display_apple: 
     pygame.draw.rect(screen, (255,0,0), (0,0,100,100)) 

    pygame.display.flip() 

    # - FPS - 

    clock.tick(30) 

# - end - 

pygame.quit() 
+0

Hey Mann, vielen Dank für Ihre Antwort! –

+0

Aber ich habe ein kleines Problem, Ihr Code erzeugt ein Partikel zu einer zufälligen Zeit in einer festen Position, ich möchte feste Zeit zufällige Position. Wie kann ich das machen? –

+0

lesen Code im Teil '# -updates -' - verwenden Sie eine feste Zeit anstelle von Zufall und fügen Sie zufällige Position hinzu. – furas

Verwandte Themen