Met de accelerometer een bal besturen
In dit voorbeeld wordt de callback accelerometer_data
geregistreerd voor de accelerometergegevens met
microbit.accelerometer.notify
Dit gebeurt wanneer de micro:bit nieuwe accelerometergegevens aanbiedt:
- de
accelerometer_data
callback wordt aangeroepen met de nieuwe gegevens als argument - de callback registreert de gegevens als de player_direction
- de lus
while running:
werkt de spelerspositie bij en tekent de bal opnieuw
Zie ook de API-documentatie:
pygame.init()
screen = pygame.display.set_mode((1280, 720))
clock = pygame.time.Clock()
running = True
player_direction = pygame.Vector2()
player_position = pygame.Vector2(screen.get_width() / 2, screen.get_height() / 2)
def accelerometer_data(data: AccelerometerData):
player_direction.x = data.x / 100
player_direction.y = data.y / 100
with KaspersMicrobit.find_one_microbit() as microbit:
microbit.accelerometer.notify(accelerometer_data)
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill("gray")
new_position = player_position + player_direction
player_position.x = pygame.math.clamp(new_position.x, 8, screen.get_width() - 8)
player_position.y = pygame.math.clamp(new_position.y, 8, screen.get_height() - 8)
pygame.draw.circle(screen, "blue", player_position, 8)
pygame.display.flip()
clock.tick(60)
pygame.quit()