Manipulando Inputs (teclado e mouse)

Introdução: Input

Um input classifica uma entrada do teclado (pressionar uma tecla) ou do mouse (pressionar um botão).

Para que funcione corretamente, é necessário também estar dentro de um loop infinito que checa a cada frame se ocorreu algum evento (ou input).

Cabe ressaltar que a Window é quem recebe os inputs, logo, deve ser criada antes.

Receber Inputs de Teclado

# Não precisamos importar o módulo keyboard pois ele já está contido em window.
from PPlay.window import *

# Cria a janela para receber inputs (PRIMEIRA COISA SEMPRE)
janela = Window(200, 200)

# Associar uma variável à instância de teclado contida em Window
teclado = Window.get_keyboard()  # Função da CLASSE e não da instância! W maiúsculo!

# Loop que apenas checa se tem alguma tecla pressionada no frame atual
while True:
    if teclado.key_pressed("UP"):  # Direcional ^
        print("Cima!")
    if teclado.key_pressed("DOWN"):  # Direcional \/
        print("Baixo!")
    if teclado.key_pressed("LEFT"):  # Direcional <-
        print("Direita!")
    if teclado.key_pressed("ESC"):  # Esc, escape..
        janela.close()  # Fecha o programa

    # O janela.update() deve ser chamado TODO Loop incondicionalmente!
    janela.update()

Para consultar os nomes das teclas mapeadas, veja a classe Keyboard.

Receber Inputs do Mouse

# A lógica para o mouse é muito parecida:
from PPlay.window import *

# Também já contém o módulo mouse nela
janela = Window(200, 200)
mouse = Window.get_mouse()

while True:
    if mouse.is_button_pressed(1):  # 1 é o botão da esquerda
        print("Esquerda!")
        print(mouse.get_position())  # função que retorna a posição (X,Y) do mouse
    if mouse.is_button_pressed(2):
        print("Meio!")
    if mouse.is_button_pressed(3):
        print("Direita!")

    janela.update()

Para consultar outras funções do mouse (is_over_object(obj), por exemplo), veja a classe Mouse.


Download do Código Completo


Créditos do Tutorial: Gabriel Saldanha