Mäng ilma sisendita pole midagi ja Pygame'i nii hiire- kui ka puutetundliku sisendi toega saate tagada, et teie mäng on juurdepääsetav.
Tänapäeval on puuteekraaniga seadmeid kõikjal. Pole üllatav, et mänguarendajad kasutavad oma mängudes üha enam puutetundlikku sisendit ja raamistikud muudavad selle lihtsamaks ja lihtsamaks.
PyGame muudab puutetundlikke sisendeid ära kasutavate mängude ja rakenduste loomise lihtsaks.
PyGame'i puutetundlik tugi
PyGame'il on puutesisenditega töötamiseks sisseehitatud tugi. See hõlmab hiire ja sõrme puutetundliku sisendi tuge.
Hiire tuvastamiseks võite kasutada nuppu pygame. HIIRENUPP ALLA ja pygame. HIIRENUPP sündmused. Näiteks:
jaoks sündmus sisse pygame.event.get():
kui event.type == mängumäng. HIIRENUPP ALLA:
print("Hiire nuppu vajutatud")
Sõrmepuudutussisendite tuvastamiseks saate kasutada pygame. SÕRMED ALLA ja pygame. SÕRMUS sündmused. Näiteks:
jaoks sündmus sisse pygame.event.get():
kui event.type == mängumäng. SÕRM ALLA:
print("Sõrm puudutas ekraani")
Lihtsa mängu loomine
Kogu koodi leiate siit see GitHubi repo.
Alustage lihtsa mängu loomisega. See mäng koosneb mängija tegelaskujust, mida saate puutetundlike sisendite abil ekraanil ringi liikuda. Selleks peate looma mängutsükli ja mängija tegelase.
Enne alustamist veenduge, et teil on pip teie seadmesse installitud, seejärel kasutage installimiseks järgmist käsku PyGame moodul:
pip install pygame
Nüüd importige PyGame moodul oma mängu koodi:
importida pygame
pygame.init()
Pärast seda looge mänguaken ja mänguobjekt:
# Seadistage ekraan
suurus = (400, 400)
ekraan = pygame.display.set_mode (suurus)# Looge mängija objekt
mängija = mängumäng. Surface((50, 50))
player.fill((255, 0, 0))
# Määrake mängija algpositsioon
player_pos = [175, 175]
Lõpuks looge mängutsükkel:
# Mängutsükkel
jookseb = Tõsisamal ajal jooksmine:
# Kontrollige sündmusi
jaoks sündmus sisse pygame.event.get():
kui event.type == mängumäng. VÄLJA:
jookseb = Vale# Värskendage mängija positsiooni
player_pos[0] += 5
player_pos[1] += 5# Joonistage mängija
screen.blit (pleier, player_pos)
# Värskendage ekraani
pygame.display.update()
Pange tähele, et ülaltoodud kood loob ainult lihtsa mängu, kus mängija tegelane liigub ekraanil. Mängu huvitavamaks muutmiseks saate seda teha lisada füüsika ja kokkupõrked luua takistusi, mida mängija ületab.
Hiire puutesisendid mängija liikumiseks
Nüüd, kui teil on mängija tegelaskujuga mäng, saate hakata puutetundlikke sisendeid lisama. Selleks peate hiire sisendite jaoks lisama sündmuste käitleja. Lisage pygame. HIIRENUPP ALLA ja pygame. HIIRENUPP sündmused mängutsüklisse.
Looge hiire sisendite jaoks sündmuste töötleja. Kui mängija vajutab hiirenuppu, värskendage tegelase asukoht hiire praegusele positsioonile. Programm ignoreerib hiirenupu vabastamist, kuna sel juhul ei pea ta midagi ette võtma.
# Mängutsükkel
jookseb = Tõsisamal ajal jooksmine:
# Kontrollige sündmusi
jaoks sündmus sisse pygame.event.get():
kui event.type == mängumäng. VÄLJA:
jookseb = Vale
# Kontrollige hiire sisendeid
elif event.type == mängumäng. HIIRENUPP ALLA:
hiir_x, hiir_y = sündmus.pos
player_pos[0] = hiir_x
player_pos[1] = hiire_y
elif event.type == mängumäng. MOUSE BUTTONUP:
üle andma
screen.fill((0, 0, 0))# Joonistage mängija
screen.blit (pleier, player_pos)
# Värskendage ekraani
pygame.display.update()
Samuti saate sündmuste käitlejale lisada täiendavat loogikat, et mängija liiguks vastuseks hiire sisendile.
Sõrmepuudutussisendid mängija liikumiseks
Lisaks hiire sisenditele saate lisada ka sõrmega puutetundlikke sisendeid. Selleks peate sõrmepuudutusega sisendite jaoks lisama sündmuste töötleja.
Lisage pygame. SÕRMED ALLA ja pygame. SÕRMUS sündmused mängutsüklisse:
# Mängutsükkel
jookseb = Tõsisamal ajal jooksmine:
# Kontrollige sündmusi
jaoks sündmus sisse pygame.event.get():
kui event.type == mängumäng. VÄLJA:
jookseb = Vale
# Kontrollige hiire sisendeid
elif event.type == mängumäng. HIIRENUPP ALLA:
hiir_x, hiir_y = sündmus.pos
player_pos[0] = hiir_x
player_pos[1] = hiire_y
elif event.type == mängumäng. MOUSE BUTTONUP:
üle andma
# Kontrollige sõrmega sisestusi
elif event.type == mängumäng. SÕRM ALLA:
sõrm_x, sõrm_y = sündmus.pos
player_pos[0] = sõrm_x
player_pos[1] = sõrm_y
elif event.type == mängumäng. FINGERUP:
üle andmascreen.fill((0, 0, 0))
# Joonistage mängija
screen.blit (pleier, player_pos)
# Värskendage ekraani
pygame.display.update()
Pange tähele, kui sarnane see hiire sisendsündmuste töötlejaga on. See sündmuste käitleja värskendab tegelase asukohta, kui mängija vajutab sõrme ekraanile. Kui nad sõrme vabastavad, ei juhtu midagi. See võimaldab teil luua mängu, mida saate juhtida nii hiire kui ka sõrme puute abil. Pidage meeles, et saate kasutada ka muid sündmusi, nagu pygame. SÕRMELIKUTUS reageerida sõrme liikumisele.
Pygame'i täiendavad puutefunktsioonid
Kui põhilised puutefunktsioonid on paigas, saate hakata lisama täpsemaid funktsioone. PyGame'il on mõned sisseehitatud funktsioonid, mis aitavad teil mängule rohkem puutefunktsioone lisada.
Esimene omadus on pygame.mouse.set_visible() funktsiooni. See funktsioon võimaldab teil hiirekursori peita. See võib olla kasulik, kui soovite luua mängu, mis kasutab ainult puutetundlikke sisendeid, mitte hiirt.
Siin on näide selle kohta, kuidas kasutada set_visible() funktsioon:
pygame.mouse.set_visible(Vale)
The pygame.mouse.set_pos() funktsioon seab hiirekursori ekraanil kindlasse kohta. See on kasulik, kui soovite liigutada hiirt kindlasse kohta ilma hiire sisendeid kasutamata.
Allpool on näide selle kohta, kuidas kasutada set_pos() funktsioon:
pygame.mouse.set_pos(200, 200)
Võite kasutada pygame.mouse.get_rel() funktsioon hiire suhtelise liikumise saamiseks. Selle abil saate tuvastada, kui kaugele on hiir pärast viimast hiiresündmust liikunud.
Nii saate kasutada get_rel() funktsioon:
dx, dy = pygame.mouse.get_rel()
Lõpuks saate kasutada pygame.mouse.get_pressed() funktsiooni kontrollimaks, kas mängija vajutab mõnda hiirenuppu. See võib olla kasulik hiire/puutetundliku juhtnupuga mängude loomisel.
Allpool on näide selle kohta, kuidas kasutada get_pressed() funktsioon:
mouse_buttons = pygame.mouse.get_pressed()
PyGame pakub ka a HIIRERATAS sündmuse tüüp, mida saate kasutada hiireratta kerimise tuvastamiseks. See toetab nii vertikaalset kui ka horisontaalset kerimist.
Siin on näide:
jaoks sündmus sisse pygame.event.get():
kui event.type == mängumäng. HIIRERATAS:
kui sündmus.y > 0:
print("Hiire ratas keritud üles")
elif sündmus.y < 0:
print("Hiireratas on alla keritud")
Looge puutesisenditega interaktiivseid mänge
Kui puutetundlikud sisendid on paigas, saate nüüd luua interaktiivseid mänge. Näiteks saate luua mängu, kus mängija saab puutetundlike sisendite abil ekraanil ringi liikuda. Samuti saate luua žestipõhiseid mänge, kus mängija saab sooritada erinevaid žeste, et käivitada mängus toiminguid.
Puutesisenditega mängude loomisel on võimalused lõputud. PyGame'i abil saate luua mänge, mis on nii lõbusad kui ka interaktiivsed. Nii et minge välja ja hakake looma!