Pygame的几个事件

时间:2015-04-30 21:16:28

标签: python events menu pygame

我的代码有些问题,我只想在pygame中使用一个事件,因为此刻我有几个。但是我不知道如何只在主循环中制作事件,所以我如果有人可以帮助我会感激(代码(两个类)被剪切,只显示我的事件,所以如果有谁知道写主要功能只使用一个事件)

    def time_out(self):
        #pausar programmet samt möjligheter att att spela vidare eller inte
        pygame.mixer.Sound.play(self.pause_ljud)
        pygame.mixer.music.pause()
        pygame.mixer.Sound.play(self.klick_ljud)
        #pausar bakgrundsmusik och spelar pauseljudet

        bigText = pygame.font.Font("SMB_font.ttf", 155)
        TextSurf, TextRect = self.Set.text_item("Paused", bigText)
        TextRect.center = ((self.inst.screen_width/2) (self.inst.skärm_height/2))
        self.Set.gameScreen.blit(TextSurf, TextRect)
        #pause lokalisering samt utseende


        while self.pause:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    pygame.quit()
                    quit()


            #gameDisplay.fill(white)

            self.Set.button("Fortsätt", (self.Set.screen_width/2-60),370,120,50, self.Set.green, self.Set.light_green, self.time_in)
            self.Set.button("Avsluta", (self.Set.screen_width/2-60),470,120,50, self.Set.red, self.Set.light_red, self.finish_game)
            #knapparnas utseende samt text         

            pygame.display.update()
            self.klocka.tick(15)



    def crash(self):
        #Controlle crash ljud, text, valmöjligheter
        pygame.mixer.music.play(-1)
        pygame.mixer.music.stop()
        pygame.mixer.Sound.play(self.gameOver_ljud)


        bigText = pygame.font.Font("SMB_font.ttf", 80)
        TextSurf, TextRect = self.Set.text_item("Welcome to the walking dead", bigText)
        TextRect.center = ((self.Set.screen_width/2), (self.inst.screen_height/2))
        self.inst.gameScreen.blit(TextSurf, TextRect)
        #textens utseeend vid krasch
        crash = False

        while not crash:
            for event in pygame.event.get():
                if event.type == pygame.MOUSEBUTTONDOWN:
                    self.spel_slinga()


            self.inst.button("Nytt spel", (self.Set.screen_width/2-60),350,120,50, self.Set.green,self.Set.light_green, self.game_loop)
            self.inst.button("Avsluta", (self.Set.screen_width/2-60),450,120,50, self.Set.red, self.Set.light_red, self.finish_game)
            #knappar som dyker upp vid krasch

            pygame.display.update()
            self.klocka.tick(15)

    def game_intro(self):
        #controlls intro-function
        pygame.mixer.music.play(-1)
        self.mouse = pygame.mouse.get_pos()              
        intro = True

        while intro:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    self.game_loop()


            self.Set.gameScreen.blit(self.intro_bakgrund, [0,0])
            bigText = pygame.font.Font("SMB_font.ttf", 70)
            TextSurf, TextRect = self.Set.text_item("Stay Alive", bigText)
            TextRect.center = ((self.Set.screen_width/2), (self.inst.skärm_height/2))
            self.Set.gameScreen.blit(TextSurf, TextRect)


            #intr textens utseende


            self.Set.button("Starta", (self.Set.screen_width/2-60),350,120,50, self.Set.green, self.Set.light_green, self.game_loop)
            self.Set.button("Avsluta", (self.Set.screen_width/2-60),450,120,50, self.Set.red, self.Set.light_red, self.finish_game)
            #knapparnas utseende och uppgift

            pygame.display.update()
            self.klocka.tick(15)

    def game_loop(self):
        #spelslingans utseende och spelfunktioner
        self.pause
        pygame.mixer.Sound(self.klick_ljud)
        pygame.mixer.music.play(-1)
        spel_bakground = pygame.image.load("spel_walking.jpg")

        x = random.randrange(0, self.inst.screen_width)
        y = (self.inst.screen_height - 188 )
        #avgör spelfigurens startläge

        x_change = 0
        y_change = 0
        #startvärde för ändring av spelfigures läge i x och y

        figure_width = 75
        figure_height = 188
        #figurens storlek

        zombie_width = 120
        zombie_hight = 194
        zombie_starty = -600
        zombie_startx = random.randrange(0,self.inst.skärm_bredd-zombie_bredd)
        zombie_speed = 4                        
        #var hindret startar och storlek

        dodged = 0

        gameExistence = False

        while not spelExistens:

            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    pygame.quit()
                    quit()


                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_LEFT:
                        x_change = -6
                    if event.key == pygame.K_RIGHT:
                        x_change = 6
                    if event.key == pygame.K_UP:
                        y_change = -6
                    if event.key == pygame.K_DOWN:
                        y_change = 6
                    if event.key == pygame.K_p:
                        self.pause = True
                        self.time_out()
                    if event.key == pygame.K_ESCAPE:
                        pygame.quit()
                        quit()

                if event.type == pygame.KEYUP:
                    if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                        x_change = 0
                    if event.key == pygame.K_UP or event.key == pygame.K_DOWN:
                        y_change = 0
                #styr spelfigurens rörelse samt knapp för pausefunktion

            x += x_change
            y += y_change
            #nya värden för spelfigurens position efter styrning av tangentbordet


            self.Set.spelSkärm.blit(spel_bachground, [0,0])
            #bakgrunden först, placerar bakgrund bakom figurerna och anger vad utgår ifrån

            self.Set.figure(x,y)
            #figurens värde i x och y-led

            self.Set.motståndare(zombie_startx, zombie_starty, zombie_width, zombie_height)
            zombie_starty += zombie_speed
            #moståndarens fuktion och startvärde
            self.barrier_dodged(dodged)
            #hämtar hinder undvikt fuktionen

            if x > self.Set.screen_width - figure_width or x < 0:
                self.crash()

            if y > self.Set.screen_width - figure_height or y < 0:
                self.crash()

            if zombie_starty > self.inst.screen_height:
                zombie_starty = 0 - zombie_height
                zombie_startx = random.randrange(0, self.inst.screen_width-zombie_width)
                dodged +=1
                pygame.mixer.Sound.play(self.score_ljud)
                zombie_speed +=1


            if y < zombie_starty + zombie_height and y + zombie_height > zombie_starty:
                #regelera vad som gäller för figuren i y-led så att den inte kraschar


                if x >zombie_startx and x < zombie_startx + zombie_width or x + figure_width > zombie_startx and x + figur_width <zombie_startx + zombie_width:
                    self.crash()

            #fixar in bilden                
            pygame.display.update()
            #spelslingans utseende och spelfunktioner





        pygame.display.update()
        self.klocka.tick(30)

0 个答案:

没有答案