def quitGame(): """ When player wants to quit the Snakes and Ladders Game this methode used to jump in the Gamemanager Main and post a QUIT-Event in the Event-Queue to quit the Snakes and Ladders game. """ gamemanager.main() pygame.event.post(pygame.event.Event(pygame.QUIT))
def print_won_message(): """ When the user guessed all characters and is not already dead a won message is printed """ #print won message pygame.time.wait(400) font_obj = pygame.font.SysFont("Comic Sans MS", 100) text_obj = font_obj.render("You Won", True, red) s.blit(text_obj, (150, 150)) pygame.display.update() pygame.time.wait(1500) # back to the menue gamemanager.main()
def print_dead_message(): """ When the user has no more lifes a dead message is printed """ #print dead message pygame.time.wait(400) font_obj = pygame.font.SysFont("Comic Sans MS", 100) text_obj = font_obj.render("You lost", True, red) s.blit(text_obj, (150, 150)) pygame.display.update() pygame.time.wait(1500) # back to the menue gamemanager.main()
def win(pT, color): """ This Method fill the hole screen with one color and blit wich Player has won. """ pygame.time.wait(400) screen.fill(oliveGreen) playerWinText = pygame.font.SysFont("comicsansms", 50) textSurf, textRect = textObjects(pT, playerWinText, color) textRect.center = ((400), (150)) screen.blit(textSurf, textRect) winText = pygame.font.SysFont("comicsansms", 50) textSurf, textRect = textObjects("you won", winText, color) textRect.center = ((400), (250)) screen.blit(textSurf, textRect) pygame.display.update() pygame.time.wait(5000) resetGame() gamemanager.main()
def beenden(self): #escape fuehrt zum gamemanager self.zentrierung("...Spiel wird beendet...") pygame.display.update() gamemanager.main()
def main(): pygame.init() reset_game_variables() ####################### # game loop ####################### running = True while running: # event loop for event in pygame.event.get(): # exit if event.type==pygame.QUIT: running = False pygame.quit() exit(0) # keys pressed keys = pygame.key.get_pressed() # rigth key if keys[K_RIGHT]: key_right() # left key if keys[K_LEFT]: key_left() # enter if keys[K_RETURN]: enter() # refresh game window s.fill(white) # print character array on screen alphabetx = 10 alphabetwidth = width /len(alphabet) font_obj = pygame.font.SysFont("Comic Sans MS", 15) for i in range (26): text_obj = font_obj.render(alphabet[i], True, colors[i]) s.blit(text_obj, (alphabetx,450)) alphabetx += alphabetwidth # print cipher word on screen cipherx = 300 cipherCharacterSpace = 25 font_obj = pygame.font.SysFont("Comic Sans MS", 25) for i in range (len(cipherword)): text_obj = font_obj.render(cipherword[i], True, black) s.blit(text_obj, (cipherx, 200)) cipherx += cipherCharacterSpace # test if player has won or lost if "_" not in cipherword: running = False #print won message pygame.time.wait(300) s.fill(white) font_obj = pygame.font.SysFont("Comic Sans MS", 100) text_obj = font_obj.render("You Won", True, red) s.blit(text_obj, (150, 150)) pygame.display.update() pygame.time.wait(1000) # back to the menue gamemanager.main() # update an tick the clock pygame.display.update() clock.tick(FPS)
def main(): global stop global snake global allKaestchen reset_game_variables() """ Ist die Gameloop-Funktion, das solange laeuft, bis die "stop"-Bedingung auf True gesetzt wird. Zudem fuehrt die Schleife bei Schliessen des Fensters zurueck zum Gamemanager. Steuerung: Pfeil-links: Spieler bewegt sich nach links Pfeil-rechts: Spieler bewegt sich nach rechts Pfeil-hoch: Spieler bewegt sich nach oben Pfeil-runter: Spieler bewegt sich nach unten """ while not stop: for event in pygame.event.get(): if event.type == pygame.QUIT: stop = True gamemanager.main() #Steuerung mit den Pfeiltasten definieren elif event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT and snake[0].change_x != 25: snake[0].changespeed(-25, 0) elif event.key == pygame.K_RIGHT and snake[0].change_x != -25: snake[0].changespeed(25, 0) elif event.key == pygame.K_UP and snake[0].change_y != 25: snake[0].changespeed(0, -25) elif event.key == pygame.K_DOWN and snake[0].change_y != -25: snake[0].changespeed(0, 25) """ In den hit_(...)-Abschnitten wird getestet, ob die Schlange auf sich selbst, einen Apfel oder einen Feind trifft. Je nachdem werden die gesammelten Elemente der Schlange wieder zurueckgesetzt (Schlange trifft Schlange & Schlange trifft Feind) oder aber um ein Element verlaengert (Schlange trifft Apfel). """ #Pruefen ob Schlange auf Feind getroffen ist hit_Kaestchen = pygame.sprite.spritecollide(snake[0], feinde, False) if hit_Kaestchen: for element in snake: if element != snake[0]: allKaestchen.remove(element) snake = snake[:1] #Pruefen ob Schlange auf sich selbst getroffen ist hit_Kaestchen = pygame.sprite.spritecollide(snake[0], snake, False) if hit_Kaestchen and len(hit_Kaestchen) > 1: for element in snake: if element != snake[0]: allKaestchen.remove(element) snake = snake[:1] #Pruefen ob Schlange Apfel gefunden hat hit_Kaestchen = pygame.sprite.spritecollide(snake[0], [apfel], False) newKaestchen = None if hit_Kaestchen: newKaestchen = Kaestchen(sg, QUADRAT_SEITE, QUADRAT_SEITE) newKaestchen.rect.x = snake[-1].rect.x newKaestchen.rect.y = snake[-1].rect.y snake.append(newKaestchen) allKaestchen.add(newKaestchen) #Position fuer Apfel erstellen ohne dass diese gleich wie die der Schlange oder der Feinde ist while True: apfel.rect.x = random.randrange(int(FELD_B / 25)) * 25 apfel.rect.y = random.randrange(int(FELD_H / 25)) * 25 hit_Kaestchen = pygame.sprite.spritecollide( apfel, snake, False) hit_Kaestchen2 = pygame.sprite.spritecollide( apfel, feinde, False) if not hit_Kaestchen and not hit_Kaestchen2: break #Anhaengsel zum hinterherlaufen bringen for index in range(len(snake) - 1, 0, -1): snake[index].rect.x = snake[index - 1].rect.x snake[index].rect.y = snake[index - 1].rect.y snake[0].update() """ screen.fill definiert den Hintergrund, Print_Bilder bezieht die vorher definierten und in der Funktion allKaestchen abgelegten Bilder. Weiterhin werden diese Bilder dem jeweiligen Objekt zugeordnet. clock.tick definiert die Geschwindigkeit der Schlange """ screen.fill(BG) # allKaestchen.draw(screen) print_Bilder(allKaestchen) pygame.display.flip() #9 FPS clock.tick(9)