Peli ei ole mitään ilman syöttöä, ja Pygamen sekä hiiri- että kosketussyöttötuen avulla voit varmistaa, että pelisi on käytettävissä.

Nykyään kosketusnäyttölaitteita on kaikkialla. Ei ole yllätys, että pelien kehittäjät käyttävät yhä enemmän kosketussyöttöä peleissään, ja puitteet tekevät tästä entistä helpompaa.

PyGamen avulla on helppo luoda pelejä ja sovelluksia, jotka voivat hyödyntää kosketustuloja.

PyGamen kosketustuki

PyGamessa on sisäänrakennettu tuki kosketustulojen kanssa työskentelemiseen. Tämä sisältää tuen hiiren ja sormen kosketustuloille.

Voit tunnistaa hiiren käyttämällä pygame. HIIRIPAINIKE ALAS ja pygame. HIIRIPAINIKE YLÖS Tapahtumat. Esimerkiksi:

varten tapahtuma sisään pygame.event.get():
jos event.type == pygame. HIIRIPAINIKE:
Tulosta("Hiiren painiketta painettu")

Voit tunnistaa sormen kosketussyötteitä käyttämällä pygame. SORMI ALAS ja pygame. SORMI Tapahtumat. Esimerkiksi:

varten tapahtuma sisään pygame.event.get():
jos event.type == pygame. SORMI ALAS:
Tulosta("Sormi kosketti näyttöä")

Yksinkertaisen pelin luominen

Löydät kaikki koodit tämä GitHub Repo.

Aloita luomalla yksinkertainen peli. Tämä peli koostuu pelaajahahmosta, jota voit liikkua näytöllä kosketussyötteiden avulla. Tätä varten sinun on luotava pelisilmukka ja pelaajahahmo.

Ennen kuin aloitat, varmista, että sinulla on pip asennettuna laitteellesi, ja asenna sitten seuraava komento PyGame moduuli:

pip asennus pygame

Tuo nyt PyGame-moduuli pelikoodiisi:

tuonti pygame
pygame.init()

Luo sen jälkeen peli-ikkuna ja peliobjekti:

# Aseta näyttö
koko = (400, 400)
näyttö = pygame.display.set_mode (koko)

# Luo pelaajaobjekti
pelaaja = pygame. Pinta((50, 50))
player.fill((255, 0, 0))

# Aseta soittimen alkusijainti
player_pos = [175, 175]

Luo lopuksi pelisilmukka:

# Pelisilmukka
juoksu = Totta

sillä aikaa käynnissä:
# Tarkista tapahtumat
varten tapahtuma sisään pygame.event.get():
jos event.type == pygame. LOPETTAA:
juoksu = Väärä

# Päivitä pelaajan sijainti
player_pos[0] += 5
player_pos[1] += 5

# Piirrä soitin
screen.blit (soitin, player_pos)

# Päivitä näyttö
pygame.display.update()

Huomaa, että yllä oleva koodi luo vain yksinkertaisen pelin, jossa pelaajahahmo liikkuu ruudulla. Voit tehdä pelistä mielenkiintoisemman lisää fysiikka ja törmäykset luoda esteitä, jotka pelaaja voi voittaa.

Hiiren kosketussisääntulot pelaajan liikkumiseen

Nyt kun sinulla on peli, jossa on pelaajahahmo, voit aloittaa kosketussyötteiden lisäämisen. Tätä varten sinun on lisättävä tapahtumakäsittelijä hiiren tuloille. Lisää pygame. HIIRIPAINIKE ALAS ja pygame. HIIRIPAINIKE YLÖS tapahtumia pelisilmukkaan.

Luo tapahtumakäsittelijä hiiren tuloille. Kun pelaaja painaa hiiren painiketta, päivitä hahmon sijainti hiiren nykyiseen paikkaan. Ohjelma jättää huomioimatta hiiren painikkeen vapauttamisen, koska sen ei tarvitse tehdä mitään siinä tapauksessa.

# Pelisilmukka
juoksu = Totta

sillä aikaa käynnissä:
# Tarkista tapahtumat
varten tapahtuma sisään pygame.event.get():
jos event.type == pygame. LOPETTAA:
juoksu = Väärä
# Tarkista hiiren tulot
elif event.type == pygame. HIIRIPAINIKE:
hiiri_x, hiiri_y = tapahtuma.pos
player_pos[0] = hiiri_x
player_pos[1] = hiiri_y
elif event.type == pygame. MOUSEBUTTONUP:
kulkea

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

# Piirrä soitin
screen.blit (soitin, player_pos)

# Päivitä näyttö
pygame.display.update()

Voit myös lisätä ylimääräistä logiikkaa tapahtumakäsittelijään, jotta soitin liikkuu vasteena hiiren syötteeseen.

Sormen kosketussisääntulot pelaajan liikkeitä varten

Hiiritulojen lisäksi voit lisätä myös sormen kosketustuloja. Tätä varten sinun on lisättävä tapahtumakäsittelijä sormen kosketustuloille.

Lisää pygame. SORMI ALAS ja pygame. SORMI pelisilmukan tapahtumat:

# Pelisilmukka
juoksu = Totta

sillä aikaa käynnissä:
# Tarkista tapahtumat
varten tapahtuma sisään pygame.event.get():
jos event.type == pygame. LOPETTAA:
juoksu = Väärä
# Tarkista hiiren tulot
elif event.type == pygame. HIIRIPAINIKE:
hiiri_x, hiiri_y = tapahtuma.pos
player_pos[0] = hiiri_x
player_pos[1] = hiiri_y
elif event.type == pygame. MOUSEBUTTONUP:
kulkea
# Tarkista sormitulot
elif event.type == pygame. SORMI ALAS:
sormi_x, sormi_y = tapahtuma.pos
player_pos[0] = sormi_x
player_pos[1] = sormi_y
elif event.type == pygame. FINGERUP:
kulkea

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

# Piirrä soitin
screen.blit (soitin, player_pos)

# Päivitä näyttö
pygame.display.update()

Huomaa, kuinka samanlainen tämä on hiiren syöttötapahtumien käsittelijän kanssa. Tämä tapahtumakäsittelijä päivittää hahmon sijainnin, kun pelaaja painaa sormeaan näytöllä. Kun he vapauttavat sormensa, mitään ei tapahdu. Tämän avulla voit luoda pelin, jota voit ohjata sekä hiiren että sormen kosketuksella. Muista, että voit käyttää myös muita tapahtumia, kuten pygame. SORMILIIKET vastata sormen liikkeisiin.

Pygamen lisäkosketusominaisuudet

Kun peruskosketusominaisuudet ovat käytössä, voit aloittaa lisäominaisuuksien lisäämisen. PyGamessa on muutamia sisäänrakennettuja ominaisuuksia, joiden avulla voit lisätä enemmän kosketusominaisuuksia peliisi.

Ensimmäinen ominaisuus on pygame.mouse.set_visible() toiminto. Tämän toiminnon avulla voit piilottaa hiiren kursorin. Tästä voi olla hyötyä, jos haluat luoda pelin, joka käyttää vain kosketussyötteitä, ei hiirtä.

Tässä on esimerkki kuinka käyttää set_visible() toiminto:

pygame.mouse.set_visible(Väärä)

The pygame.mouse.set_pos() toiminto asettaa hiiren kohdistimen tiettyyn kohtaan näytöllä. Tämä on hyödyllistä, jos haluat siirtää hiiren tiettyyn paikkaan käyttämättä hiiren tuloja.

Alla on esimerkki, kuinka käyttää set_pos() toiminto:

pygame.mouse.set_pos(200, 200)

Voit käyttää pygame.mouse.get_rel() funktio saada hiiren suhteellinen liike. Tämän avulla voit havaita kuinka pitkälle hiiri on liikkunut edellisen hiiritapahtuman jälkeen.

Näin voit käyttää get_rel() toiminto:

dx, dy = pygame.mouse.get_rel()

Lopuksi voit käyttää pygame.mouse.get_pressed() -toiminto tarkistaaksesi, painaako soitin jotakin hiiren painiketta. Tästä voi olla hyötyä luotaessa pelejä hiiri-/kosketusohjaimilla.

Alla on esimerkki, kuinka käyttää get_pressed() toiminto:

mouse_buttons = pygame.mouse.get_pressed()

PyGame tarjoaa myös a HIIREN RULLA tapahtumatyyppi, jonka avulla voit havaita hiiren rullavieritykset. Se tukee sekä pysty- että vaakavieritystä.

Tässä on esimerkki:

varten tapahtuma sisään pygame.event.get():
jos event.type == pygame. HIIREN RULLA:
jos tapahtuma.y > 0:
Tulosta("Hiiren rullaa rullattu ylös")
elif tapahtuma.y < 0:
Tulosta("Hiiren rullaa rullattu alas")

Luo interaktiivisia pelejä kosketustuloilla

Kun kosketussisääntulot ovat paikoillaan, voit nyt luoda interaktiivisia pelejä. Voit esimerkiksi luoda pelin, jossa pelaaja voi liikkua näytöllä kosketussyötteiden avulla. Voit myös luoda elepohjaisia ​​pelejä, joissa pelaaja voi suorittaa erilaisia ​​eleitä käynnistääkseen toimintoja pelissä.

Mahdollisuudet ovat loputtomat, kun on kyse pelien luomisesta kosketustuloilla. PyGamen avulla voit luoda pelejä, jotka ovat sekä hauskoja että interaktiivisia. Joten mene ulos ja aloita luominen!