def key_commands(self): if PlayerInput.is_key_down(pygame.K_LEFT): self.set_location(self.x - self.speed, self.y) if PlayerInput.is_key_down(pygame.K_RIGHT): self.set_location(self.x + self.speed, self.y) if PlayerInput.is_key_pressed(pygame.K_SPACE): self.start_rising()
def key_commands(self): if PlayerInput.is_key_down(pygame.K_LEFT): self.set_location(self.x - 1, self.y) if PlayerInput.is_key_down(pygame.K_RIGHT): self.set_location(self.x + 1, self.y) if PlayerInput.is_key_down(pygame.K_UP): self.set_location(self.x, self.y - 1) if PlayerInput.is_key_down(pygame.K_DOWN): self.set_location(self.x, self.y + 1)
def execute_event_loop(self): while self.running: time_passed = self.clock.tick(50) PlayerInput.reset_key_list() for event in pygame.event.get(): PlayerInput.key_input_listener(event) if event.type == pygame.QUIT: running = False self.active_world.manage_actions() self.active_world.actor_bounds() self.active_world.draw_screen() pygame.display.update()
def __init__(self, x, y, collider): super().__init__(x, y, 64, 64) self.maxJumps = 3 self.jumps = self.maxJumps self.groundAccel = 4 self.maxSpeed = 12 self.jumpPower = 14 self.groundDecel = 8 self.airAccel = 2 self.slideAccel = 1 self.slideHeight = 48 self.standHeight = 64 self.jumpPressed = False self.leftPressed = False self.rightPressed = False self.downPressed = False self.upPressed = False self.dashPressed = False self.EXIT = False self.LEVEL = 0 self.SKULL = False self.moveDirection = d.none self.frictionToggle = 0 self.yVelo = 0 self.xVelo = 0 self.jumpY = 0 self.jumpX = 0 self.blocked = False self.grounded = False self.running = False self.direction = d.none self.trySliding = False self.sliding = False self.grabbing = False self.grabbed = False self.lastGrab = False self.grabTime = 60 self.grabDirection = d.none self.maxEnergy = 120 self.energy = 120 self.dashing = False self.collider = collider self.loadAnimations() self.changeAnimation('Samurai_idle_right') self.controller = PlayerInput.PlayerInput() self.keyboard = Controller()
def __init__(self): self.window = pygame.display.set_mode(size) pygame.display.set_caption('Snake') self.window.fill(black) self.fps_increment=80 self.FPS=STARTING_FPS self.playerInput = PlayerInput() self.board=Board() self.head=Segment((world_size/2, world_size/2)) self.snake=Snake(self.head) self.food=Food()
def set_player_input(self): self.player_input_obj = PI.PlayerInput(self) return
class SnakeGame: def __init__(self): self.window = pygame.display.set_mode(size) pygame.display.set_caption('Snake') self.window.fill(black) self.fps_increment=80 self.FPS=STARTING_FPS self.playerInput = PlayerInput() self.board=Board() self.head=Segment((world_size/2, world_size/2)) self.snake=Snake(self.head) self.food=Food() def game(self): pygame.init() running=True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running=False self.playerInput.takeInput(event) if self.food.foodExists==False: self.food.spawnFood(self.board.grid) if self.snake.foundFood(self.food.foodGridPosition)==True: self.food.clearFood(self.board.grid) self.board.updateNodes(self.snake) self.drawBoard() self.food.foodExists=False self.snake.grow() self.snake.setDirection(self.playerInput.direction) self.playerInput.finaliseDirection() #self.board.resetNode(self.snake.getHead().getLastNode().getPosition()) This code doesn't work. For some reason, when food it picked up, this no longer calls the method. self.snake.moveSnake() if self.snake.checkCollision()==True: break self.board.updateNodes(self.snake) self.drawBoard() clock.tick(self.FPS) pygame.display.update() self.increaseFPS() pygame.quit() def drawBoard(self): for List in self.board.grid: for node in List: if node.getContainsFood()==True: pygame.draw.rect(self.window, red, (node.getPosition()[0], node.getPosition()[1], rectangle_width, rectangle_height),0) elif node.getContainsSnake()==True: pygame.draw.rect(self.window, white, (node.getPosition()[0], node.getPosition()[1], rectangle_width, rectangle_height),0) elif node.getContainsSnake()==False: pygame.draw.rect(self.window, black, (node.getPosition()[0], node.getPosition()[1], rectangle_width, rectangle_height),0) def increaseFPS(self): self.fps_increment-=1 if self.fps_increment<=0: if self.FPS<=fps_cap: self.FPS+=1 self.fps_increment=80 def main(self): self.game()