def __init__(self): self.GAME = 'BEGIN GAME' self.GAME_CAPTION = 'XF game' # load game's resources self.FONTS = load_all_fonts(os.path.join('resources', 'fonts')) self.MUSIC = load_all_music(os.path.join('resources', 'music')) self.GFX = load_all_gfx(os.path.join('resources', 'graphics')) self.SFX = load_all_sfx(os.path.join('resources', 'sound')) self.TMX = load_all_tmx(os.path.join('resources', 'tmx')) self.FONT = pg.font.Font(self.FONTS['Fixedsys500c'], 20) self.screen = pg.display.get_surface() self.events = None self.viewport = None self.level_surface = None self.level_rect = None # box self.bground = self.GFX['box'] self.bgroundrect = self.bground.get_rect(centerx=400) # load map resource self.tmx_map = self.TMX['background2'] self.renderer = tilerender.Renderer(self.tmx_map) self.map_image = self.renderer.make_map() self.map_rect = self.map_image.get_rect() self.viewport = SCREEN.get_rect(bottom=self.map_rect.bottom) self.level_surface = pg.Surface(self.map_rect.size) self.level_rect = self.level_surface.get_rect() # set blocks self.blockers = [] for object in self.renderer.tmx_data.getObjects(): if object.name == 'BLOCK': left = object.x - 64 top = object.y blocker = pg.Rect(left, top, 32, 32) self.blockers.append(blocker) # load players self.player = None for object in self.renderer.tmx_data.getObjects(): properties = object.__dict__ if object.name == 'spoint': posx = object.x + 32 posy = object.y self.player = Player.Player('player1', 'down', posx, posy) self.player.rect.x = posx self.player.rect.y = posy else: self.player = Player.Player('player1', 'down') self.player.rect.x = 0 self.player.rect.y = 0
def load_map(render_data): # initialization map tmx_map = render_data.TMX['background2'] renderer = tilerender.Renderer(tmx_map) map_image = renderer.make_map() map_rect = map_image.get_rect() render_data.viewport = SCREEN.get_rect(bottom=map_rect.bottom) render_data.level_surface = pg.Surface(map_rect.size) render_data.level_rect = render_data.level_surface.get_rect() render_data.viewport.center = (320, 320) render_data.viewport.clamp_ip(render_data.level_rect) render_data.level_surface.blit(map_image, render_data.viewport, render_data.viewport) render_data.screen.blit(render_data.level_surface, (0, 0), render_data.viewport) return ("LOADMAP", render_data)
clock = pg.time.Clock() # some about fps fps = 60 show_fps = False done = False state_dict = {} # state machine # current game state state_name = None state = None current_time = 0.0 keys = pg.key.get_pressed() # music # set_music(MUSIC["kings_theme"], 0.4) # map tmx_map = TMX['background2'] renderer = tilerender.Renderer(tmx_map) map_image = renderer.make_map() map_rect = map_image.get_rect() viewport = SCREEN.get_rect(bottom=map_rect.bottom) level_surface = pg.Surface(map_rect.size) level_rect = level_surface.get_rect() # title_box = GFX['title_box'] # title_rect = title_box.get_rect() # title_rect.midbottom = viewport.midbottom # title_rect.y -= 30 alpha = 255 # player posx = 0 posy = 0 player = Player.Player('down')