def jump_through_collision_handler(space, arbiter): # pass through only if going up return arbiter.shapes[0].body.velocity.y < 0 def bullet_collision_handler(space, arbiter): arbiter.shapes[0].body.player.health -= 1 arbiter.shapes[1].body.bullet.destroy() return True SPACE.gravity = (0, -1000) # in px/sec^2 SPACE.add_collision_handler( PLAYER_COLLISION_TYPE, JUMP_THROUGH_COLLISION_TYPE, begin=jump_through_collision_handler) SPACE.add_collision_handler( PLAYER_COLLISION_TYPE, BULLET_COLLISION_TYPE, begin=bullet_collision_handler) def calculate_input(old_pressed_keys): # Manage all events for event in pygame.event.get(): pressed_window_x = event.type == KEYS.QUIT pressed_esc = (event.type == KEYS.KEYDOWN and event.key in [KEYS.K_ESCAPE]) if pressed_window_x or pressed_esc: sys.exit() pressed = pygame.key.get_pressed()