Exemplo n.º 1
0
    def render(self, ui_screen):
        super().render(ui_screen)

        cursor = self.get_manager(Manager.PLAYER).cursors[Team.RED]

        # Generate a screen of the size of the map
        map = self.get_manager(Manager.MAP)
        map_screen = pygame.Surface(
            (map.width * GRID_WIDTH, map.height * GRID_HEIGHT),
            pygame.SRCALPHA, 32)
        SESSION.render(map_screen, ui_screen)

        # Render the current tile at the bottom of the screen
        ui_screen.fill(clear_color[Team.RED],
                       (0, RESOLUTION_HEIGHT - GRID_HEIGHT, RESOLUTION_WIDTH,
                        GRID_HEIGHT))

        # Render tiles
        tile_display = pygame.Surface((GRID_WIDTH * 2, GRID_HEIGHT),
                                      pygame.SRCALPHA, 32).convert()
        tile_display.set_alpha(255 if cursor.placing_tiles else 64)

        tile_display.blit(
            self.get_tile_sprite_for_tiletype(cursor.tile_type[0]), (0, 0))
        tile_display.blit(spr_cursor[Team.RED], (0, 0))
        tile_display.blit(
            self.get_tile_sprite_for_tiletype(cursor.tile_type[1]),
            (GRID_WIDTH, 0))
        tile_display.blit(spr_cursor[Team.BLUE], (GRID_WIDTH, 0))

        ui_screen.blit(tile_display, (0, RESOLUTION_HEIGHT - GRID_HEIGHT))

        # Render pieces
        piece_display = pygame.Surface((GRID_WIDTH, GRID_HEIGHT),
                                       pygame.SRCALPHA, 32).convert()
        piece_display.set_alpha(255 if not cursor.placing_tiles else 64)

        piece_display.fill(clear_color[cursor.team],
                           (0, 0, GRID_WIDTH, GRID_HEIGHT))
        piece_display.blit(
            self.get_piece_sprite_for_piecetype(cursor.piece_type,
                                                cursor.team), (0, 0))
        piece_display.blit(spr_cursor[cursor.team], (0, 0))

        ui_screen.blit(piece_display,
                       (GRID_WIDTH * 3, RESOLUTION_HEIGHT - GRID_HEIGHT))

        # Trim the screen to just the camera area
        camera_x, camera_y = self.get_manager(
            Manager.PLAYER).get_camera_coords()
        return map_screen.subsurface(
            (camera_x, camera_y, min(CAMERA_WIDTH,
                                     map_screen.get_size()[0]),
             min(CAMERA_HEIGHT,
                 map_screen.get_size()[1])))
Exemplo n.º 2
0
    def render(self, ui_screen):
        super().render(ui_screen)

        # Generate a screen of the size of the map
        map = self.get_manager(Manager.MAP)
        map_screen = Surface((map.width * GRID_WIDTH, map.height * GRID_HEIGHT), SRCALPHA, 32)

        SESSION.render(map_screen, ui_screen)

        # Trim the screen to just the camera area
        camera_x, camera_y = self.get_manager(Manager.PLAYER).get_camera_coords()
        return map_screen.subsurface((camera_x, camera_y,
                                      min(CAMERA_WIDTH, map_screen.get_size()[0]),
                                      min(CAMERA_HEIGHT, map_screen.get_size()[1])))