Un joc nu este nimic fără intrare și, cu suportul Pygame atât pentru introducerea mouse-ului, cât și pentru intrare tactilă, vă puteți asigura că jocul este accesibil.

În zilele noastre, dispozitivele cu ecran tactil sunt peste tot. Nu este surprinzător faptul că dezvoltatorii de jocuri folosesc din ce în ce mai mult introducerea tactilă în jocurile lor, iar cadrele fac acest lucru mai ușor și mai ușor.

PyGame facilitează crearea de jocuri și aplicații care pot profita de intrările tactile.

Suportul tactil de la PyGame

PyGame are suport încorporat pentru lucrul cu intrări tactile. Aceasta include suport pentru introducerea mouse-ului și a atingerii cu degetul.

Pentru a detecta un mouse, puteți utiliza pygame. BUTON ȘOREZUL și pygame. BUTONUL MOUSE-UP evenimente. De exemplu:

pentru eveniment în pygame.event.get():
dacă event.type == pygame. BUTONUL MOUSE-JOS:
imprimare(„Buton mouse-ului apăsat”)

Pentru a detecta intrările de atingere cu degetul, puteți utiliza pygame. DEGETUL JOS și pygame. FINGERUP evenimente. De exemplu:

instagram viewer
pentru eveniment în pygame.event.get():
dacă event.type == pygame. DEGETUL JOS:
imprimare(„Degetul a atins ecranul”)

Crearea unui joc simplu

Puteți găsi tot codul în acest GitHub Repo.

Începeți prin a crea un joc simplu. Acest joc va consta dintr-un personaj jucător pe care îl puteți deplasa pe ecran folosind intrări tactile. Pentru a face acest lucru, va trebui să creați o buclă de joc și un personaj de jucător.

Înainte de a începe, asigurați-vă că aveți pip instalat pe dispozitivul dvs, apoi utilizați următoarea comandă pentru a instala PyGame modul:

pip install pygame

Acum, importați modulul PyGame în codul de joc:

import pygame
pygame.init()

După aceea, creați fereastra de joc și un obiect de joc:

# Configurați afișajul
dimensiune = (400, 400)
ecran = pygame.display.set_mode (dimensiune)

# Creați un obiect jucător
player = pygame. Suprafaţă((50, 50))
player.fill((255, 0, 0))

# Setați poziția inițială a playerului
player_pos = [175, 175]

În cele din urmă, creați bucla de joc:

# Bucla jocului
alergare = Adevărat

in timp ce alergare:
# Verificați evenimentele
pentru eveniment în pygame.event.get():
dacă event.type == pygame. PĂRĂSI:
alergare = Fals

# Actualizați poziția jucătorului
player_pos[0] += 5
player_pos[1] += 5

# Desenați jucătorul
screen.blit (player, player_pos)

# Actualizați afișajul
pygame.display.update()

Rețineți că codul de mai sus creează doar un joc simplu în care personajul jucătorului se mișcă pe ecran. Pentru a face jocul mai interesant, poți adăugați fizica și coliziunile pentru a crea obstacole pe care jucătorul le poate depăși.

Intrări de atingere ale mouse-ului pentru mișcarea jucătorului

Acum că aveți un joc cu un personaj jucător, puteți începe să adăugați intrări tactile. Pentru a face acest lucru, va trebui să adăugați un handler de evenimente pentru intrările mouse-ului. Adaugă pygame. BUTON ȘOREZUL și pygame. BUTONUL MOUSE-UP evenimente în bucla de joc.

Creați un handler de evenimente pentru intrările mouse-ului. Când un jucător apasă butonul mouse-ului, actualizați poziția personajului la poziția curentă a mouse-ului. Programul va ignora eliberarea butonului mouse-ului, deoarece nu trebuie să ia nicio măsură în acest caz.

# Bucla jocului
alergare = Adevărat

in timp ce alergare:
# Verificați evenimentele
pentru eveniment în pygame.event.get():
dacă event.type == pygame. PĂRĂSI:
alergare = Fals
# Verificați intrările mouse-ului
elif event.type == pygame. BUTONUL MOUSE-JOS:
mouse_x, mouse_y = event.pos
player_pos[0] = mouse_x
player_pos[1] = mouse_y
elif event.type == pygame. BUTONUL MOUSE:
trece

screen.fill((0, 0, 0))

# Desenați jucătorul
screen.blit (player, player_pos)

# Actualizați afișajul
pygame.display.update()

De asemenea, puteți adăuga o logică suplimentară la gestionarea evenimentelor pentru a face jucătorul să se miște ca răspuns la intrarea mouse-ului.

Intrări de atingere cu degetul pentru mișcarea jucătorului

Pe lângă intrările mouse-ului, puteți adăuga și intrări de atingere cu degetul. Pentru a face acest lucru, va trebui să adăugați un handler de evenimente pentru intrările prin atingere cu degetul.

Adaugă pygame. DEGETUL JOS și pygame. FINGERUP evenimente în bucla de joc:

# Bucla jocului
alergare = Adevărat

in timp ce alergare:
# Verificați evenimentele
pentru eveniment în pygame.event.get():
dacă event.type == pygame. PĂRĂSI:
alergare = Fals
# Verificați intrările mouse-ului
elif event.type == pygame. BUTONUL MOUSE-JOS:
mouse_x, mouse_y = event.pos
player_pos[0] = mouse_x
player_pos[1] = mouse_y
elif event.type == pygame. BUTONUL MOUSE:
trece
# Verificați introducerea degetelor
elif event.type == pygame. DEGETUL JOS:
finger_x, finger_y = event.pos
player_pos[0] = finger_x
player_pos[1] = finger_y
elif event.type == pygame. FINGERUP:
trece

screen.fill((0, 0, 0))

# Desenați jucătorul
screen.blit (player, player_pos)

# Actualizați afișajul
pygame.display.update()

Observați cât de asemănător este acesta cu gestionarea de evenimente de intrare a mouse-ului. Acest handler de evenimente actualizează poziția personajului atunci când jucătorul își apasă degetul pe ecran. Când își eliberează degetul, nu se întâmplă nimic. Acest lucru vă permite să creați un joc pe care îl puteți controla folosind atât mouse-ul, cât și degetul. Rețineți că puteți utiliza și alte evenimente precum pygame. MIșcarea degetelor pentru a răspunde la mișcarea degetelor.

Funcțiile suplimentare de atingere ale Pygame

Cu funcțiile tactile de bază implementate, puteți începe să adăugați funcții mai avansate. PyGame are câteva funcții încorporate care vă pot ajuta să adăugați mai multe funcții tactile în jocul dvs.

Prima caracteristică este pygame.mouse.set_visible() funcţie. Această funcție vă permite să ascundeți cursorul mouse-ului. Acest lucru poate fi util dacă doriți să creați un joc care să folosească doar intrări tactile și nu mouse-ul.

Iată un exemplu despre cum să utilizați set_visible() funcţie:

pygame.mouse.set_visible(Fals)

The pygame.mouse.set_pos() funcția setează cursorul mouse-ului într-o anumită poziție de pe ecran. Acest lucru este util dacă doriți să mutați mouse-ul într-o anumită locație fără a utiliza intrările mouse-ului.

Mai jos este un exemplu de utilizare a set_pos() funcţie:

pygame.mouse.set_pos(200, 200)

Puteți folosi pygame.mouse.get_rel() funcția pentru a obține mișcarea relativă a mouse-ului. Puteți utiliza acest lucru pentru a detecta cât de departe s-a deplasat mouse-ul de la ultimul eveniment de mouse.

Acesta este modul în care puteți utiliza get_rel() funcţie:

dx, dy = pygame.mouse.get_rel()

În cele din urmă, puteți utiliza pygame.mouse.get_pressed() pentru a verifica dacă jucătorul apasă vreun buton al mouse-ului. Acest lucru poate fi util atunci când creați jocuri cu comenzi mouse/touch.

Mai jos este un exemplu de utilizare a get_pressed() funcţie:

mouse_buttons = pygame.mouse.get_pressed()

PyGame oferă, de asemenea, un ROATA SORICULUI tip de eveniment pe care îl puteți utiliza pentru a detecta derulările roții mouse-ului. Suportă atât derulări verticale, cât și orizontale.

Iată un exemplu:

pentru eveniment în pygame.event.get():
dacă event.type == pygame. roata mouse-ului:
dacă eveniment.y > 0:
imprimare(„Rotița mouse-ului derulată în sus”)
elif eveniment.y < 0:
imprimare(„Rotița mouse-ului a derulat în jos”)

Creați jocuri interactive cu intrări tactile

Cu intrările tactile activate, acum puteți crea jocuri interactive. De exemplu, puteți crea un joc în care jucătorul se poate deplasa pe ecran folosind intrări tactile. De asemenea, puteți crea jocuri bazate pe gesturi, în care jucătorul poate efectua diferite gesturi pentru a declanșa acțiuni în joc.

Posibilitățile sunt nesfârșite atunci când vine vorba de crearea de jocuri cu intrări tactile. Cu ajutorul PyGame, puteți crea jocuri care sunt atât distractive, cât și interactive. Așa că ieși acolo și începe să creezi!