def update(self, delta_time): if self.state == State.MAIN_MENU: if self.space_pressed: self.state = State.PLAYING self.setup() elif self.state == State.PLAYING: #game movement self.bee_sprite.change_x = 0 self.bee_sprite.change_y = 0 if self.space_pressed: self.bee_sprite.change_x = PLAYER_JUMP_SPEED self.bee_sprite.change_y = PLAYER_JUMP_DISTANCE else: self.bee_sprite.change_x = PLAYER_MOVEMENT_SPEED #check if bee has a flower flower_hit_list = arcade.check_for_collision_with_list( self.bee_sprite, self.flowers_list) for flower in flower_hit_list: flower.remove_from_sprite_lists() self.score = self.score + 1 #check if bee hit an obstacle bottom_obstacle_hit_list = arcade.check_for_collision_with_list( self.bee_sprite, self.bottom_obstacles_list) top_obstacle_hit_list = arcade.check_for_collision_with_list( self.bee_sprite, self.top_obstacles_list) if len(bottom_obstacle_hit_list) != 0 or len( top_obstacle_hit_list) != 0: self.bee_sprite.angle = -90 self.bee_sprite.change_y = 0 self.state = State.GAME_OVER self.setup() #kill obstacles & flowers and then make new ones so that it gives "scrolling" effect if self.bee_sprite.center_x >= SCREEN_WIDTH: self.bee_sprite.center_x = bee.SPRITE_STARTING_X Obstacle.kill_obstacles(self.bottom_obstacles_list) Obstacle.kill_obstacles(self.top_obstacles_list) Obstacle.kill_obstacles(self.flowers_list) if len(self.bottom_obstacles_list) == 0 and len( self.top_obstacles_list) == 0: self.bottom_obstacles_list, self.top_obstacles_list = Obstacle.setup_obstacles( self.bottom_obstacles_list, self.top_obstacles_list) self.flower = Flower.setup(self.flowers_list, self.bottom_obstacles_list, self.top_obstacles_list) self.physics_engine.update() elif self.state == State.GAME_OVER: if self.n_pressed: arcade.close_window() if self.y_pressed: self.state = State.MAIN_MENU self.setup()