Пример #1
0
    def play_game(self):
        # Set up screen
        self.screen = pygame.display.set_mode(
            (self.WINDOWWIDTH, self.WINDOWHEIGHT), self.FLAGS)
        pygame.display.set_caption('2D Platforming Test')
        self.clock = pygame.time.Clock()

        # Set up objects
        self.tilemap = tmx.load('level_1.tmx', self.screen.get_size())
        self.currentLevel = level.Level("levels/level_1.lvl")
        self.player = entities.Player(self.currentLevel, (4, 56, 60, 90))
        self.tilemap.set_focus(self.player.rect.centerx,
                               self.player.rect.centery)

        # self.currentLevel = level.Level("levels/level_2.lvl")
        # self.player = entities.Player(self.currentLevel, (3, 4, 60, 90))

        # original speed settings for 30 FPS
        #
        #if self.FPS == 30:
        #    self.player.maxSpeed = 16
        #    self.player.accel_amt = 3
        #    self.player.airaccel_amt = 2
        #    self.player.deaccel_amt = 10
        #    self.player.fallAccel = 4
        #    self.animation_speed = 0.015
        #
        self.cameraObj = camera.Camera(self.player.rect, self.WINDOWWIDTH,
                                       self.WINDOWHEIGHT)
        self.OSD_text = hud.OSD()
        #dt = 0
        # Game loop
        while True:
            self.keys = self.collect_input()
            self.player.update(self.keys, self.currentLevel)
            self.cameraObj.update(self.player.cameraRect, self.currentLevel)
            self.OSD_text.update(self)

            self.tilemap.set_focus(self.player.rect.centerx,
                                   self.player.rect.centery)
            # Fill the screen with an R,G,B color to erase the previous drawings
            self.screen.fill((0, 0, 0))
            #draw the backgrounds, charater and then the blocks in that order
            self.tilemap.layers[0].draw(self.screen)
            self.tilemap.layers[1].draw(self.screen)
            draw.draw_entities(self.screen, (self.player, ), self.cameraObj)
            self.tilemap.layers[2].draw(self.screen)
            draw.draw_level(self.screen, self.currentLevel, self.cameraObj)
            # Refresh the display window.
            pygame.display.flip()
            if self.showText:
                draw.draw_OSD(self.screen, self.OSD_text.text)

            pygame.display.update()
            self.clock.tick(self.FPS)
Пример #2
0
    def play_game(self):
        # Set up screen
        self.screen = pygame.display.set_mode((self.WINDOWWIDTH, self.WINDOWHEIGHT), self.FLAGS)
        pygame.display.set_caption("2D Platforming Test")
        self.clock = pygame.time.Clock()

        # Set up objects
        self.tilemap = tmx.load("level_1.tmx", self.screen.get_size())
        self.currentLevel = level.Level("levels/level_1.lvl")
        self.player = entities.Player(self.currentLevel, (4, 56, 60, 90))
        self.tilemap.set_focus(self.player.rect.centerx, self.player.rect.centery)

        # self.currentLevel = level.Level("levels/level_2.lvl")
        # self.player = entities.Player(self.currentLevel, (3, 4, 60, 90))

        # original speed settings for 30 FPS
        #
        # if self.FPS == 30:
        #    self.player.maxSpeed = 16
        #    self.player.accel_amt = 3
        #    self.player.airaccel_amt = 2
        #    self.player.deaccel_amt = 10
        #    self.player.fallAccel = 4
        #    self.animation_speed = 0.015
        #
        self.cameraObj = camera.Camera(self.player.rect, self.WINDOWWIDTH, self.WINDOWHEIGHT)
        self.OSD_text = hud.OSD()
        # dt = 0
        # Game loop
        while True:
            self.keys = self.collect_input()
            self.player.update(self.keys, self.currentLevel)
            self.cameraObj.update(self.player.cameraRect, self.currentLevel)
            self.OSD_text.update(self)

            self.tilemap.set_focus(self.player.rect.centerx, self.player.rect.centery)
            # Fill the screen with an R,G,B color to erase the previous drawings
            self.screen.fill((0, 0, 0))
            # draw the backgrounds, charater and then the blocks in that order
            self.tilemap.layers[0].draw(self.screen)
            self.tilemap.layers[1].draw(self.screen)
            draw.draw_entities(self.screen, (self.player,), self.cameraObj)
            self.tilemap.layers[2].draw(self.screen)
            draw.draw_level(self.screen, self.currentLevel, self.cameraObj)
            # Refresh the display window.
            pygame.display.flip()
            if self.showText:
                draw.draw_OSD(self.screen, self.OSD_text.text)

            pygame.display.update()
            self.clock.tick(self.FPS)
Пример #3
0
    def play_game(self):
        # Set up screen
        self.screen = pygame.display.set_mode((self.WINDOWWIDTH, self.WINDOWHEIGHT), self.FLAGS)
        pygame.display.set_caption('2D Platforming Test')
        self.clock = pygame.time.Clock()
        
        # Set up objects
        self.currentLevel = level.Level("lib\\level_1.lvl")
        self.player = entities.Player(self.currentLevel, (10, 9, 60, 90))
        
        # original speed settings for 30 FPS
        if self.FPS == 30:
            self.player.maxSpeed = 16
            self.player.accel_amt = 3
            self.player.airaccel_amt = 2
            self.player.deaccel_amt = 10
            self.player.fallAccel = 4
            self.animation_speed = 0.015
            
        self.cameraObj = camera.Camera(self.player.rect, 
                                       self.WINDOWWIDTH, 
                                       self.WINDOWHEIGHT)
        self.OSD_text = hud.OSD()

        # Game loop
        while True:
            self.keys = self.collect_input()
            self.player.update(self.keys, self.currentLevel)
            self.cameraObj.update(self.player.cameraRect, self.currentLevel)
            self.OSD_text.update(self)
           
            draw.draw_level(self.screen, self.currentLevel, self.cameraObj)
            draw.draw_entities(self.screen, (self.player,), self.cameraObj)
            if self.showText:
                draw.draw_OSD(self.screen, self.OSD_text.text)

            pygame.display.update()
            self.clock.tick(self.FPS)