def __init__(self, player, background_image, name): self.name = name self.set_of_platforms = set() self.special_objects = set() self.static_objects = set() self.opponents = set() self.opponents_weapon = set() self.spikes = set() self.crystals = set() self.player = player self.player.reset_data() self.world_shift_x = 0 self.world_shift_y = 0 self.background_image = background_image self.image_w = self.player.screen_width self.image_h = self.player.screen_height self.info = False self.time = datetime.datetime.now() self.save_time = 0 self.change_time = False self.max_crystal = 0 screen.blit( pygame.transform.scale(self.background_image, (self.image_w, self.image_h)), (0, 0)) self.remove_opponent = [] self.wp = [] self.so = [] self.op = [] self.rm = [] self.sp = [] self.cr = []
def animate_character(self): if self.is_walking == True: self.steps += 1 if self.dir == 'north': self.animation(0) elif self.dir == 'south': self.animation(180) elif self.dir == 'east': self.animation(270) elif self.dir == 'west': self.animation(90) else: if self.dir == 'south': self.n_img = pygame.transform.rotate(self.image, 180) elif self.dir == 'east': self.n_img = pygame.transform.rotate(self.image, 270) elif self.dir == 'west': self.n_img = pygame.transform.rotate(self.image, 90) else: self.n_img = self.image screen.blit(self.n_img, (self.rect.x, self.rect.y))
def run(): pygame.init() # choose a better size later clock = pygame.time.Clock() bg = pygame.image.load('background.png') player = Player() parse_level(Levels[1]) running = True while running: clock.tick(60) for e in pygame.event.get(): if e.type == pygame.QUIT: running = False # Move the player if an arrow key is pressed player.update_position() # Draw the scene screen.fill((0, 0, 0)) for wall in walls: pygame.draw.rect(screen, (255, 255, 255), wall.rect) screen.blit(wall.img, (wall.rect.x, wall.rect.y)) for item in items: pygame.draw.rect(screen, item.color, item.rect) player.player_update() pygame.display.flip()
def animation(self, rotation): if self.steps > len(self.animg) - 1: self.steps = 0 self.step_ani = pygame.transform.rotate(self.animg[self.steps], rotation) screen.blit(self.step_ani, (self.rect.x, self.rect.y))
def draw(self, surface): surface.blit( pygame.transform.scale( self.background_image, (self.player.screen_width, self.player.screen_height)), (0, 0)) self.button_back.draw(surface) self.button_level_1.draw(surface) surface.blit( pygame.transform.scale(image_stars[int(self.list_line[0 * 4 + 1])], (int(self.player.screen_height / 6), int(self.player.screen_height / 10))), (self.player.screen_width * 0.22, self.player.screen_height * 0.52)) if self.list_line[0 * 4 + 3] == '0:00': screen.blit( pygame.transform.scale(image_lock, (self.player.screen_height // 6, self.player.screen_height // 6)), (self.player.screen_width * 0.34, self.player.screen_height * 0.4)) else: self.button_level_2.draw(surface) surface.blit( pygame.transform.scale( image_stars[int(self.list_line[1 * 4 + 1])], (int(self.player.screen_height / 6), int(self.player.screen_height / 10))), (self.player.screen_width * 0.34, self.player.screen_height * 0.52)) if self.list_line[1 * 4 + 3] == '0:00': screen.blit( pygame.transform.scale(image_lock, (self.player.screen_height // 6, self.player.screen_height // 6)), (self.player.screen_width * 0.46, self.player.screen_height * 0.4)) else: self.button_level_3.draw(surface) surface.blit( pygame.transform.scale( image_stars[int(self.list_line[2 * 4 + 1])], (int(self.player.screen_height / 6), int(self.player.screen_height / 10))), (self.player.screen_width * 0.46, self.player.screen_height * 0.52)) if self.list_line[2 * 4 + 3] == '0:00': screen.blit( pygame.transform.scale(image_lock, (self.player.screen_height // 6, self.player.screen_height // 6)), (self.player.screen_width * 0.58, self.player.screen_height * 0.4)) else: self.button_level_4.draw(surface) surface.blit( pygame.transform.scale( image_stars[int(self.list_line[3 * 4 + 1])], (int(self.player.screen_height / 6), int(self.player.screen_height / 10))), (self.player.screen_width * 0.58, self.player.screen_height * 0.52)) if self.list_line[3 * 4 + 3] == '0:00': screen.blit( pygame.transform.scale(image_lock, (self.player.screen_height // 6, self.player.screen_height // 6)), (self.player.screen_width * 0.70, self.player.screen_height * 0.4)) else: self.button_level_5.draw(surface) surface.blit( pygame.transform.scale( image_stars[int(self.list_line[4 * 4 + 1])], (int(self.player.screen_height / 6), int(self.player.screen_height / 10))), (self.player.screen_width * 0.70, self.player.screen_height * 0.52))
def __init__(self, player, background_image, name): super().__init__(player, background_image, name) self.button_back = Button(player, 'Back', image_back, self.player.screen_width * 0.448, self.player.screen_height * 5.2 // 7, self.player.screen_height, self.player.screen_height, 5, 5) self.button_level_1 = Button(player, 'Level_1', image_level_1, self.player.screen_width * 0.22, self.player.screen_height * 0.4, self.player.screen_height, self.player.screen_height, 6, 6) self._read_stars() if self.list_line[0 * 4 + 3] == '0:00': screen.blit( pygame.transform.scale(image_lock, (self.player.screen_height // 6, self.player.screen_height // 6)), (self.player.screen_width * 0.34, self.player.screen_height * 0.4)) else: self.button_level_2 = Button(player, 'Level_2', image_level_2, self.player.screen_width * 0.34, self.player.screen_height * 0.4, self.player.screen_height, self.player.screen_height, 6, 6) if self.list_line[1 * 4 + 3] == '0:00': screen.blit( pygame.transform.scale(image_lock, (self.player.screen_height // 6, self.player.screen_height // 6)), (self.player.screen_width * 0.46, self.player.screen_height * 0.4)) else: self.button_level_3 = Button(player, 'Level_3', image_level_3, self.player.screen_width * 0.46, self.player.screen_height * 0.4, self.player.screen_height, self.player.screen_height, 6, 6) if self.list_line[2 * 4 + 3] == '0:00': screen.blit( pygame.transform.scale(image_lock, (self.player.screen_height // 6, self.player.screen_height // 6)), (self.player.screen_width * 0.58, self.player.screen_height * 0.4)) else: self.button_level_4 = Button(player, 'Level_4', image_level_4, self.player.screen_width * 0.58, self.player.screen_height * 0.4, self.player.screen_height, self.player.screen_height, 6, 6) if self.list_line[3 * 4 + 3] == '0:00': screen.blit( pygame.transform.scale(image_lock, (self.player.screen_height // 6, self.player.screen_height // 6)), (self.player.screen_width * 0.70, self.player.screen_height * 0.4)) else: self.button_level_5 = Button(player, 'Level_5', image_level_5, self.player.screen_width * 0.70, self.player.screen_height * 0.4, self.player.screen_height, self.player.screen_height, 6, 6) self.info = False