Un gioco non è niente senza input, e con il supporto di Pygame sia per il mouse che per l'input tattile, puoi assicurarti che il tuo gioco sia accessibile.

Al giorno d'oggi, i dispositivi touchscreen sono ovunque. Non sorprende che gli sviluppatori di giochi utilizzino sempre più l'input tattile nei loro giochi e che i framework lo stiano rendendo sempre più semplice.

PyGame semplifica la creazione di giochi e applicazioni che possono sfruttare gli input tattili.

Supporto touch di PyGame

PyGame ha il supporto integrato per lavorare con gli input tattili. Ciò include il supporto per gli input touch del mouse e delle dita.

Per rilevare un mouse, puoi usare il pygame. MOUSEBUTTONDOWN E pygame. MOUSEBUTTONUP eventi. Per esempio:

per evento In pygame.event.get():
Se event.type == pygame. MOUSEBUTTONDOWN:
stampa("Pulsante del mouse premuto")

Per rilevare gli input tattili con le dita, è possibile utilizzare il pygame. DITO GIÙ E pygame. FINGERUP eventi. Per esempio:

per evento In pygame.event.get():
Se event.type == pygame. FINGERDOWN:
stampa("Il dito ha toccato lo schermo")
instagram viewer

Creazione di un gioco semplice

Puoi trovare tutto il codice in questo repository GitHub.

Inizia creando un gioco semplice. Questo gioco consisterà in un personaggio del giocatore che puoi spostare sullo schermo usando gli input tattili. Per fare ciò, dovrai creare un ciclo di gioco e un personaggio del giocatore.

Prima di iniziare, assicurati di averlo pip installato sul tuo dispositivo, quindi utilizzare il comando seguente per installare il file PyGame modulo:

pip installa pygame

Ora, importa il modulo PyGame nel tuo codice di gioco:

importare pygame
pygame.init()

Successivamente, crea la finestra di gioco e un oggetto di gioco:

# Imposta il display
dimensione = (400, 400)
schermo = pygame.display.set_mode (dimensione)

# Crea un oggetto giocatore
giocatore = pygame. Superficie((50, 50))
player.fill((255, 0, 0))

# Imposta la posizione iniziale del giocatore
player_pos = [175, 175]

Infine, crea il ciclo di gioco:

# Il ciclo di gioco
correre = VERO

Mentre corsa:
# Controlla gli eventi
per evento In pygame.event.get():
Se event.type == pygame. ESENTATO:
correre = Falso

# Aggiorna la posizione del giocatore
player_pos[0] += 5
player_pos[1] += 5

# Disegna il giocatore
screen.blit (giocatore, player_pos)

# Aggiorna il display
pygame.display.update()

Nota che il codice sopra crea solo un gioco semplice in cui il personaggio del giocatore si muove sullo schermo. Per rendere il gioco più interessante, puoi farlo aggiungi fisica e collisioni per creare ostacoli da superare per il giocatore.

Ingressi touch del mouse per il movimento del giocatore

Ora che hai un gioco con un personaggio giocatore, puoi iniziare ad aggiungere input tattili. Per fare ciò, dovrai aggiungere un gestore di eventi per gli input del mouse. Aggiungi il pygame. MOUSEBUTTONDOWN E pygame. MOUSEBUTTONUP eventi al ciclo di gioco.

Crea un gestore di eventi per gli input del mouse. Quando un giocatore preme il pulsante del mouse, aggiorna la posizione del personaggio alla posizione corrente del mouse. Il programma ignorerà il rilascio del pulsante del mouse, poiché in tal caso non è necessario intraprendere alcuna azione.

# Il ciclo di gioco
correre = VERO

Mentre corsa:
# Controlla gli eventi
per evento In pygame.event.get():
Se event.type == pygame. ESENTATO:
correre = Falso
# Controlla gli input del mouse
elif event.type == pygame. MOUSEBUTTONDOWN:
mouse_x, mouse_y = evento.pos
player_pos[0] = topo_x
player_pos[1] = mouse_y
elif event.type == pygame. MOUSEBUTTONUP:
passaggio

schermo.riempimento((0, 0, 0))

# Disegna il giocatore
screen.blit (giocatore, player_pos)

# Aggiorna il display
pygame.display.update()

Puoi anche aggiungere ulteriore logica al gestore di eventi per far muovere il giocatore in risposta all'input del mouse.

Ingressi Finger Touch per il movimento del giocatore

Oltre agli input del mouse, puoi anche aggiungere input del tocco delle dita. Per fare ciò, dovrai aggiungere un gestore di eventi per gli input del tocco delle dita.

Aggiungi il pygame. DITO GIÙ E pygame. FINGERUP eventi al ciclo di gioco:

# Il ciclo di gioco
correre = VERO

Mentre corsa:
# Controlla gli eventi
per evento In pygame.event.get():
Se event.type == pygame. ESENTATO:
correre = Falso
# Controlla gli input del mouse
elif event.type == pygame. MOUSEBUTTONDOWN:
mouse_x, mouse_y = evento.pos
player_pos[0] = topo_x
player_pos[1] = mouse_y
elif event.type == pygame. MOUSEBUTTONUP:
passaggio
# Controlla gli input delle dita
elif event.type == pygame. FINGERDOWN:
dito_x, dito_y = evento.pos
player_pos[0] = dito_x
player_pos[1] = dito_y
elif event.type == pygame. DITO IN SU:
passaggio

schermo.riempimento((0, 0, 0))

# Disegna il giocatore
screen.blit (giocatore, player_pos)

# Aggiorna il display
pygame.display.update()

Si noti quanto questo sia simile al gestore dell'evento di input del mouse. Questo gestore di eventi aggiorna la posizione del personaggio quando il giocatore preme il dito sullo schermo. Quando rilasciano il dito, non succede nulla. Ciò ti consente di creare un gioco che puoi controllare utilizzando sia il mouse che il tocco delle dita. Tieni presente che puoi anche utilizzare altri eventi come pygame. MOVIMENTO DELLE DITA per rispondere al movimento delle dita.

Funzionalità touch aggiuntive di Pygame

Con le funzionalità touch di base in atto, puoi iniziare ad aggiungere funzionalità più avanzate. PyGame ha alcune funzionalità integrate che possono aiutarti ad aggiungere più funzionalità touch al tuo gioco.

La prima caratteristica è il pygame.mouse.set_visible() funzione. Questa funzione consente di nascondere il cursore del mouse. Questo può essere utile se vuoi creare un gioco che utilizza solo input tattili e non il mouse.

Ecco un esempio di come utilizzare il set_visibile() funzione:

pygame.mouse.set_visible(Falso)

IL pygame.mouse.set_pos() La funzione imposta il cursore del mouse in una posizione specifica sullo schermo. Ciò è utile se si desidera spostare il mouse in una posizione specifica senza utilizzare gli input del mouse.

Di seguito è riportato un esempio di come utilizzare il set_pos() funzione:

pygame.mouse.set_pos(200, 200)

Puoi usare il pygame.mouse.get_rel() funzione per ottenere il movimento relativo del mouse. Puoi usarlo per rilevare di quanto si è spostato il mouse dall'ultimo evento del mouse.

Ecco come puoi usare il get_rel() funzione:

dx, dy = pygame.mouse.get_rel()

Infine, puoi utilizzare il pygame.mouse.get_pressed() funzione per verificare se il giocatore preme un pulsante del mouse. Questo può essere utile quando si creano giochi con controlli mouse/touch.

Di seguito è riportato un esempio di come utilizzare il get_press() funzione:

mouse_buttons = pygame.mouse.get_pressed()

PyGame fornisce anche un ROTELLINA DEL MOUSE tipo di evento che è possibile utilizzare per rilevare gli spostamenti della rotellina del mouse. Supporta scroll sia verticali che orizzontali.

Ecco un esempio:

per evento In pygame.event.get():
Se event.type == pygame. ROTELLINA DEL MOUSE:
Se evento.y > 0:
stampa("Rotellina del mouse fatta scorrere verso l'alto")
elif evento.y < 0:
stampa("Rotellina del mouse scorre verso il basso")

Crea giochi interattivi con input tattili

Con gli input tattili in atto, ora puoi creare giochi interattivi. Ad esempio, puoi creare un gioco in cui il giocatore può spostarsi sullo schermo utilizzando input tattili. Puoi anche creare giochi basati sui gesti, in cui il giocatore può eseguire diversi gesti per attivare azioni nel gioco.

Le possibilità sono infinite quando si tratta di creare giochi con input tattili. Con l'aiuto di PyGame, puoi creare giochi divertenti e interattivi. Quindi esci e inizia a creare!