Beispiel #1
0
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))
Beispiel #2
0
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()
Beispiel #3
0
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()
Beispiel #4
0
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()
Beispiel #5
0
	def beenden(self):			#escape fuehrt zum gamemanager
		self.zentrierung("...Spiel wird beendet...")
		pygame.display.update()
		gamemanager.main()
Beispiel #6
0
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)