Igra je ništa bez unosa, a uz Pygameovu podršku za unos mišem i dodirom, možete osigurati da vaša igra bude dostupna.

U današnje vrijeme, uređaji sa zaslonom osjetljivim na dodir su posvuda. Nije iznenađenje da programeri igara sve više koriste unos dodirom u svojim igrama, a okviri to čine lakšim i lakšim.

PyGame olakšava stvaranje igara i aplikacija koje mogu iskoristiti prednosti dodirnih unosa.

PyGameova podrška za dodir

PyGame ima ugrađenu podršku za rad s dodirnim unosima. To uključuje podršku za unos mišem i dodirom prsta.

Da biste otkrili miš, možete koristiti pygame. TIPKA MIŠA i pygame. GUMB MIŠA GORE događanja. Na primjer:

za događaj u pygame.event.get():
ako event.type == pygame. MOUSEBTONDOWN:
ispis("Gumb miša pritisnut")

Za otkrivanje unosa dodirom prstom, možete koristiti pygame. PRST DOLJE i pygame. PRST GORE događanja. Na primjer:

za događaj u pygame.event.get():
ako event.type == pygame. PRST DOLJE:
ispis("Prst dotaknuo ekran")

Stvaranje jednostavne igre

Sav kod možete pronaći u ovaj GitHub Repo.

Započnite stvaranjem jednostavne igre. Ova igra će se sastojati od lika igrača kojeg možete pomicati po zaslonu pomoću unosa dodirom. Da biste to učinili, morat ćete stvoriti petlju igre i lik igrača.

Prije nego počnete, provjerite jeste li pip instaliran na vašem uređaju, zatim upotrijebite sljedeću naredbu za instalaciju PyGame modul:

pip instaliraj pygame

Sada uvezite PyGame modul u svoj kod igre:

uvoz pygame
pygame.init()

Nakon toga kreirajte prozor igre i objekt igre:

# Postavite zaslon
veličina = (400, 400)
zaslon = pygame.display.set_mode (veličina)

# Stvorite objekt igrača
igrač = pygame. Površinski((50, 50))
player.fill((255, 0, 0))

# Postavite početni položaj playera
player_pos = [175, 175]

Na kraju, stvorite petlju igre:

# Petlja igre
trčanje = Pravi

dok trčanje:
# Provjerite događaje
za događaj u pygame.event.get():
ako event.type == pygame. PRESTATI:
trčanje = lažno

# Ažurirajte poziciju igrača
igrač_pozicija[0] += 5
igrač_pozicija[1] += 5

# Nacrtajte igrača
screen.blit (player, player_pos)

# Ažurirajte zaslon
pygame.display.update()

Imajte na umu da gornji kod stvara samo jednostavnu igru ​​u kojoj se lik igrača kreće po ekranu. Da bi igra bila zanimljivija, možete dodajte fiziku i sudare stvoriti prepreke koje igrač mora savladati.

Unosi dodirom miša za kretanje igrača

Sada kada imate igru ​​s likom igrača, možete početi dodavati dodirne unose. Da biste to učinili, morat ćete dodati rukovatelj događajima za unose miša. Dodajte pygame. TIPKA MIŠA i pygame. GUMB MIŠA GORE događaja u petlju igre.

Napravite rukovatelj događajima za unose mišem. Kada igrač pritisne tipku miša, ažurira položaj lika na trenutni položaj miša. Program će ignorirati otpuštanje tipke miša jer u tom slučaju ne treba ništa poduzeti.

# Petlja igre
trčanje = Pravi

dok trčanje:
# Provjerite događaje
za događaj u pygame.event.get():
ako event.type == pygame. PRESTATI:
trčanje = lažno
# Provjerite unose mišem
elif event.type == pygame. MOUSEBTONDOWN:
mouse_x, mouse_y = event.pos
igrač_pozicija[0] = miš_x
igrač_pozicija[1] = miš_y
elif event.type == pygame. GUMB MIŠA GORE:
proći

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

# Nacrtajte igrača
screen.blit (player, player_pos)

# Ažurirajte zaslon
pygame.display.update()

Također možete dodati dodatnu logiku rukovatelju događajima kako bi se igrač pomaknuo kao odgovor na unos mišem.

Unosi dodirom prsta za kretanje igrača

Osim unosa mišem, također možete dodati unose dodirom prsta. Da biste to učinili, morat ćete dodati rukovatelj događajima za unose dodirom prsta.

Dodajte pygame. PRST DOLJE i pygame. PRST GORE događaji u petlju igre:

# Petlja igre
trčanje = Pravi

dok trčanje:
# Provjerite događaje
za događaj u pygame.event.get():
ako event.type == pygame. PRESTATI:
trčanje = lažno
# Provjerite unose mišem
elif event.type == pygame. MOUSEBTONDOWN:
mouse_x, mouse_y = event.pos
igrač_pozicija[0] = miš_x
igrač_pozicija[1] = miš_y
elif event.type == pygame. GUMB MIŠA GORE:
proći
# Provjerite unose prstima
elif event.type == pygame. PRST DOLJE:
finger_x, finger_y = event.pos
igrač_pozicija[0] = prst_x
igrač_pozicija[1] = prst_y
elif event.type == pygame. PRST GORE:
proći

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

# Nacrtajte igrača
screen.blit (player, player_pos)

# Ažurirajte zaslon
pygame.display.update()

Primijetite koliko je ovo slično rukovatelju događajima unosa mišem. Ovaj rukovatelj događajima ažurira položaj lika kada igrač pritisne prst na ekranu. Kad puste prst, ništa se ne događa. To vam omogućuje stvaranje igre kojom možete upravljati pomoću unosa mišem i dodirom prsta. Imajte na umu da možete koristiti i druge događaje kao što su pygame. POKRET PRSTIJU reagirati na pokret prstiju.

Pygameove dodatne dodirne značajke

S osnovnim dodirnim značajkama možete početi dodavati naprednije značajke. PyGame ima nekoliko ugrađenih značajki koje vam mogu pomoći da svojoj igri dodate više dodirnih značajki.

Prva značajka je pygame.mouse.set_visible() funkcija. Ova vam funkcija omogućuje skrivanje pokazivača miša. Ovo može biti korisno ako želite stvoriti igru ​​koja koristi samo unose dodirom, a ne mišem.

Evo primjera kako koristiti set_visible() funkcija:

pygame.mouse.set_visible(lažno)

The pygame.mouse.set_pos() funkcija postavlja kursor miša na određeni položaj na zaslonu. Ovo je korisno ako želite premjestiti miš na određeno mjesto bez upotrebe unosa mišem.

Ispod je primjer kako koristiti set_pos() funkcija:

pygame.mouse.set_pos(200, 200)

Možete koristiti pygame.mouse.get_rel() funkcija za dobivanje relativnog kretanja miša. Ovo možete koristiti za otkrivanje koliko se daleko miš pomaknuo od zadnjeg događaja miša.

Ovako možete koristiti get_rel() funkcija:

dx, dy = pygame.mouse.get_rel()

Konačno, možete koristiti pygame.mouse.get_pressed() funkcija za provjeru pritisne li igrač bilo koju tipku miša. Ovo može biti korisno pri izradi igara s kontrolama miša/dodirom.

Ispod je primjer kako koristiti get_pressed() funkcija:

tipke_miša = pygame.mouse.get_pressed()

PyGame također nudi a KOTAČIĆ MIŠA vrstu događaja koju možete koristiti za otkrivanje pomicanja kotačića miša. Podržava i okomito i vodoravno pomicanje.

Evo primjera:

za događaj u pygame.event.get():
ako event.type == pygame. KOTAČIĆ MIŠA:
ako događaj.y > 0:
ispis("Kotačić miša pomaknut prema gore")
elif događaj.y < 0:
ispis("Kotačić miša pomaknut prema dolje")

Stvorite interaktivne igre pomoću dodirnih unosa

S postavljenim dodirnim ulazima sada možete stvarati interaktivne igre. Na primjer, možete stvoriti igru ​​u kojoj se igrač može pomicati po zaslonu koristeći dodirne unose. Također možete kreirati igre temeljene na gestama, gdje igrač može izvoditi različite geste kako bi pokrenuo radnje u igri.

Mogućnosti su beskrajne kada je u pitanju stvaranje igara s unosom dodirom. Uz pomoć PyGamea možete stvarati igre koje su i zabavne i interaktivne. Stoga izađite van i počnite stvarati!