Igra ni nič brez vnosa in s podporo Pygame za vnos z miško in dotikom lahko zagotovite, da je vaša igra dostopna.
V današnjem času so naprave z zasloni na dotik povsod. Ni presenetljivo, da razvijalci iger vedno pogosteje uporabljajo vnos na dotik v svojih igrah, okviri pa to vse bolj olajšajo.
PyGame olajša ustvarjanje iger in aplikacij, ki lahko izkoristijo vnose na dotik.
Podpora za dotik PyGame
PyGame ima vgrajeno podporo za delo z vnosi na dotik. To vključuje podporo za vnose z miško in prstom.
Če želite zaznati miško, lahko uporabite pygame. MOUSEBTONDOWN in pygame. MOUSEBTONUP dogodkov. Na primer:
za dogodek v pygame.event.get():
če event.type == pygame. MOUSEBTONDOWN:
natisni("Gumb miške pritisnjen")
Če želite zaznati vnose na dotik s prstom, lahko uporabite pygame. PRST NAVZDOL in pygame. PRST GOR dogodkov. Na primer:
za dogodek v pygame.event.get():
če event.type == pygame. PRST NAVZDOL:
natisni("Prst se je dotaknil zaslona")
Ustvarjanje preproste igre
Vso kodo najdete v ta GitHub Repo.
Začnite z ustvarjanjem preproste igre. Ta igra bo sestavljena iz lika igralca, ki ga lahko premikate po zaslonu z uporabo vnosov na dotik. Če želite to narediti, boste morali ustvariti igralno zanko in lik igralca.
Preden začnete, se prepričajte, da imate pip nameščen v vaši napravi, nato uporabite naslednji ukaz za namestitev PyGame modul:
pip namestite pygame
Zdaj uvozite modul PyGame v svojo kodo igre:
uvoz pygame
pygame.init()
Po tem ustvarite okno igre in predmet igre:
# Nastavite zaslon
velikost = (400, 400)
zaslon = pygame.display.set_mode (velikost)# Ustvari predmet igralca
igralec = pygame. Površina((50, 50))
player.fill((255, 0, 0))
# Nastavite začetni položaj predvajalnika
player_pos = [175, 175]
Končno ustvarite zanko igre:
# Igralna zanka
tek = Pravmedtem teče:
# Preverite dogodke
za dogodek v pygame.event.get():
če event.type == pygame. PRENEHATI:
tek = False# Posodobite položaj igralca
player_pos [0] += 5
player_pos [1] += 5# Narišite igralca
screen.blit (igralec, player_pos)
# Posodobite zaslon
pygame.display.update()
Upoštevajte, da zgornja koda ustvari preprosto igro, kjer se lik igralca premika po zaslonu. Da bo igra bolj zanimiva, lahko dodajte fiziko in trke ustvariti ovire, ki jih mora igralec premagati.
Vnosi z dotikom miške za premikanje igralca
Zdaj, ko imate igro z likom igralca, lahko začnete dodajati vnose na dotik. Če želite to narediti, boste morali dodati obravnavo dogodkov za vnose miške. Dodajte pygame. MOUSEBTONDOWN in pygame. MOUSEBTONUP dogodkov v zanko igre.
Ustvarite obravnavo dogodkov za vnose miške. Ko igralec pritisne gumb miške, posodobi položaj lika na trenutni položaj miške. Program bo prezrl sprostitev miškinega gumba, saj mu v tem primeru ni treba ukrepati.
# Igralna zanka
tek = Pravmedtem teče:
# Preverite dogodke
za dogodek v pygame.event.get():
če event.type == pygame. PRENEHATI:
tek = False
# Preverite vnose z miško
elif event.type == pygame. MOUSEBTONDOWN:
mouse_x, mouse_y = event.pos
player_pos [0] = miška_x
player_pos [1] = miška_y
elif event.type == pygame. MOUSEBUTTONUP:
prehod
screen.fill((0, 0, 0))# Narišite igralca
screen.blit (igralec, player_pos)
# Posodobite zaslon
pygame.display.update()
Obdelovalcu dogodkov lahko dodate tudi dodatno logiko, da se igralec premakne kot odgovor na vnos miške.
Vnosi s prstnim dotikom za gibanje igralca
Poleg vnosov z miško lahko dodate tudi vnose s prstnim dotikom. Če želite to narediti, boste morali dodati obravnavo dogodkov za vnose s prstnim dotikom.
Dodajte pygame. PRST NAVZDOL in pygame. PRST GOR dogodki v zanki igre:
# Igralna zanka
tek = Pravmedtem teče:
# Preverite dogodke
za dogodek v pygame.event.get():
če event.type == pygame. PRENEHATI:
tek = False
# Preverite vnose z miško
elif event.type == pygame. MOUSEBTONDOWN:
mouse_x, mouse_y = event.pos
player_pos [0] = miška_x
player_pos [1] = miška_y
elif event.type == pygame. MOUSEBUTTONUP:
prehod
# Preverite vnose s prsti
elif event.type == pygame. PRST NAVZDOL:
finger_x, finger_y = event.pos
player_pos [0] = prst_x
player_pos [1] = prst_y
elif event.type == pygame. PRST GOR:
prehodscreen.fill((0, 0, 0))
# Narišite igralca
screen.blit (igralec, player_pos)
# Posodobite zaslon
pygame.display.update()
Opazite, kako podobno je to obdelovalcu dogodkov vnosa z miško. Ta urejevalnik dogodkov posodobi položaj lika, ko igralec s prstom pritisne na zaslon. Ko spustijo prst, se ne zgodi nič. To vam omogoča, da ustvarite igro, ki jo lahko nadzirate z uporabo miške in vnosov s prstom. Upoštevajte, da lahko uporabite tudi druge dogodke, kot je npr pygame. GIBANJE PRSTOV da se odzove na premikanje prstov.
Dodatne funkcije Pygame na dotik
Z osnovnimi funkcijami na dotik lahko začnete dodajati naprednejše funkcije. PyGame ima nekaj vgrajenih funkcij, ki vam lahko pomagajo dodati več funkcij na dotik vaši igri.
Prva značilnost je pygame.mouse.set_visible() funkcijo. Ta funkcija vam omogoča, da skrijete kazalec miške. To je lahko koristno, če želite ustvariti igro, ki uporablja samo vnose na dotik in ne miške.
Tukaj je primer, kako uporabiti set_visible() funkcija:
pygame.mouse.set_visible(False)
The pygame.mouse.set_pos() funkcija nastavi kazalec miške na določen položaj na zaslonu. To je uporabno, če želite premakniti miško na določeno lokacijo brez uporabe vnosov miške.
Spodaj je primer uporabe set_pos() funkcija:
pygame.mouse.set_pos(200, 200)
Lahko uporabite pygame.mouse.get_rel() funkcijo za pridobitev relativnega gibanja miške. To lahko uporabite za ugotavljanje, kako daleč se je premaknila miška od zadnjega dogodka miške.
Tako lahko uporabite get_rel() funkcija:
dx, dy = pygame.mouse.get_rel()
Končno lahko uporabite pygame.mouse.get_pressed(), da preveri, ali igralec pritisne kateri koli gumb miške. To je lahko uporabno pri ustvarjanju iger z miško/kontrolo na dotik.
Spodaj je primer uporabe get_pressed() funkcija:
mouse_buttons = pygame.mouse.get_pressed()
PyGame ponuja tudi a MIŠKO KOLESE tip dogodka, ki ga lahko uporabite za zaznavanje pomikov kolesca miške. Podpira navpično in vodoravno drsenje.
Tukaj je primer:
za dogodek v pygame.event.get():
če event.type == pygame. MIŠKO KOLESE:
če dogodek.y > 0:
natisni("Kolešček miške se je pomaknil navzgor")
elif dogodek.y < 0:
natisni("Kolesce miške se je pomaknilo navzdol")
Ustvarite interaktivne igre z vnosi na dotik
Z nameščenimi vnosi na dotik lahko zdaj ustvarjate interaktivne igre. Ustvarite lahko na primer igro, v kateri se lahko igralec premika po zaslonu z uporabo vnosov na dotik. Ustvarite lahko tudi igre, ki temeljijo na kretnjah, kjer lahko igralec izvaja različne kretnje, da sproži dejanja v igri.
Možnosti so neskončne, ko gre za ustvarjanje iger z vnosi na dotik. S pomočjo PyGame lahko ustvarite igre, ki so hkrati zabavne in interaktivne. Zato pojdi ven in začni ustvarjati!