Hra nie je ničím bez vstupu a s podporou Pygame pre vstup myšou aj dotykom môžete zaistiť, aby bola vaša hra dostupná.
V dnešnej dobe sú zariadenia s dotykovou obrazovkou všade. Nie je žiadnym prekvapením, že vývojári hier čoraz viac využívajú dotykový vstup vo svojich hrách a frameworky to uľahčujú a zjednodušujú.
PyGame uľahčuje vytváranie hier a aplikácií, ktoré môžu využívať dotykové vstupy.
Dotyková podpora PyGame
PyGame má vstavanú podporu pre prácu s dotykovými vstupmi. To zahŕňa podporu pre dotykové vstupy myši a prstov.
Na detekciu myši môžete použiť pygame. MOUSEBUTTONDOWN a pygame. MOUSEBUTTONUP diania. Napríklad:
pre udalosť v pygame.event.get():
ak event.type == pygame. Tlačidlo myši:
vytlačiť ("Tlačidlo myši stlačené")
Na detekciu dotykových vstupov môžete použiť pygame. DOLE Prstom a pygame. Zdvihnúť prst diania. Napríklad:
pre udalosť v pygame.event.get():
ak event.type == pygame. DOLE Prstom:
vytlačiť ("Prst sa dotkol obrazovky")
Vytvorenie jednoduchej hry
Celý kód nájdete v tento GitHub Repo.
Začnite vytvorením jednoduchej hry. Táto hra bude pozostávať z postavy hráča, s ktorou sa môžete pohybovať po obrazovke pomocou dotykových vstupov. Na to budete musieť vytvoriť hernú slučku a postavu hráča.
Skôr ako začnete, uistite sa, že máte pip nainštalovaný na vašom zariadení, potom použite nasledujúci príkaz na inštaláciu PyGame modul:
pip install pygame
Teraz importujte modul PyGame do kódu hry:
importovať pygame
pygame.init()
Potom vytvorte herné okno a herný objekt:
# Nastavte displej
veľkosť = (400, 400)
obrazovka = pygame.display.set_mode (veľkosť)# Vytvorte objekt hráča
hráč = pygame. Povrch((50, 50))
player.fill((255, 0, 0))
# Nastavte počiatočnú polohu prehrávača
player_pos = [175, 175]
Nakoniec vytvorte hernú slučku:
# Herná slučka
beh = Pravdazatiaľ čo beh:
# Skontrolujte udalosti
pre udalosť v pygame.event.get():
ak event.type == pygame. UKONČIŤ:
beh = Nepravdivé# Aktualizujte pozíciu hráča
player_pos[0] += 5
player_pos[1] += 5# Nakreslite prehrávač
screen.blit (player, player_pos)
# Aktualizujte displej
pygame.display.update()
Upozorňujeme, že vyššie uvedený kód vytvára iba jednoduchú hru, v ktorej sa postava hráča pohybuje po obrazovke. Aby bola hra zaujímavejšia, môžete pridať fyziku a zrážky vytvárať prekážky, ktoré musí hráč prekonať.
Dotykové vstupy myši pre pohyb hráča
Teraz, keď máte hru s postavou hráča, môžete začať pridávať dotykové vstupy. Ak to chcete urobiť, budete musieť pridať obsluhu udalosti pre vstupy myši. Pridajte pygame. MOUSEBUTTONDOWN a pygame. MOUSEBUTTONUP udalosti do hernej slučky.
Vytvorte obsluhu udalosti pre vstupy myši. Keď hráč stlačí tlačidlo myši, aktualizujte polohu postavy na aktuálnu pozíciu myši. Program bude ignorovať uvoľnenie tlačidla myši, pretože v takom prípade nemusí vykonať žiadnu akciu.
# Herná slučka
beh = Pravdazatiaľ čo beh:
# Skontrolujte udalosti
pre udalosť v pygame.event.get():
ak event.type == pygame. UKONČIŤ:
beh = Nepravdivé
# Skontrolujte vstupy myši
elif event.type == pygame. Tlačidlo myši:
mouse_x, mouse_y = event.pos
player_pos[0] = mouse_x
player_pos[1] = mouse_y
elif event.type == pygame. TLAČIDLO NA MYŠI:
prejsť
screen.fill((0, 0, 0))# Nakreslite prehrávač
screen.blit (player, player_pos)
# Aktualizujte displej
pygame.display.update()
Môžete tiež pridať ďalšiu logiku do obsluhy udalosti, aby sa hráč pohyboval v reakcii na vstup myši.
Dotykové vstupy pre pohyb hráča
Okrem vstupov myšou môžete pridať aj dotykové vstupy. Ak to chcete urobiť, budete musieť pridať obsluhu udalosti pre dotykové vstupy.
Pridajte pygame. DOLE Prstom a pygame. Zdvihnúť prst udalosti do hernej slučky:
# Herná slučka
beh = Pravdazatiaľ čo beh:
# Skontrolujte udalosti
pre udalosť v pygame.event.get():
ak event.type == pygame. UKONČIŤ:
beh = Nepravdivé
# Skontrolujte vstupy myši
elif event.type == pygame. Tlačidlo myši:
mouse_x, mouse_y = event.pos
player_pos[0] = mouse_x
player_pos[1] = mouse_y
elif event.type == pygame. TLAČIDLO NA MYŠI:
prejsť
# Skontrolujte zadanie prstom
elif event.type == pygame. DOLE Prstom:
finger_x, finger_y = event.pos
player_pos[0] = finger_x
player_pos[1] = finger_y
elif event.type == pygame. Zdvihnutie prsta:
prejsťscreen.fill((0, 0, 0))
# Nakreslite prehrávač
screen.blit (player, player_pos)
# Aktualizujte displej
pygame.display.update()
Všimnite si, aké podobné je to s obsluhou udalosti vstupu myši. Táto obsluha udalosti aktualizuje polohu postavy, keď hráč stlačí prst na obrazovke. Keď uvoľnia prst, nič sa nestane. To vám umožní vytvoriť hru, ktorú môžete ovládať pomocou myši aj dotyku prstov. Myslite na to, že môžete využiť aj iné akcie ako napr pygame. POHYB PRSTOV reagovať na pohyb prstov.
Ďalšie dotykové funkcie Pygame
So základnými dotykovými funkciami môžete začať pridávať pokročilejšie funkcie. PyGame má niekoľko vstavaných funkcií, ktoré vám môžu pomôcť pridať do hry ďalšie dotykové funkcie.
Prvou vlastnosťou je pygame.mouse.set_visible() funkciu. Táto funkcia umožňuje skryť kurzor myši. To môže byť užitočné, ak chcete vytvoriť hru, ktorá používa iba dotykové vstupy a nie myš.
Tu je príklad, ako použiť set_visible() funkcia:
pygame.mouse.set_visible(Nepravdivé)
The pygame.mouse.set_pos() funkcia nastaví kurzor myši na konkrétnu pozíciu na obrazovke. To je užitočné, ak chcete presunúť myš na konkrétne miesto bez použitia vstupov myši.
Nižšie je uvedený príklad, ako použiť set_pos() funkcia:
pygame.mouse.set_pos(200, 200)
Môžete použiť pygame.mouse.get_rel() funkcia na získanie relatívneho pohybu myši. Môžete to použiť na zistenie toho, ako ďaleko sa myš posunula od poslednej udalosti myši.
Takto môžete použiť get_rel() funkcia:
dx, dy = pygame.mouse.get_rel()
Nakoniec môžete použiť pygame.mouse.get_pressed() funkcia na kontrolu, či hráč stlačí nejaké tlačidlo myši. To môže byť užitočné pri vytváraní hier s ovládaním myšou/dotykom.
Nižšie je uvedený príklad, ako použiť get_pressed() funkcia:
mouse_buttons = pygame.mouse.get_pressed()
PyGame tiež poskytuje a MOUSEWHEEL typ udalosti, ktorý môžete použiť na zistenie rolovania kolieska myši. Podporuje vertikálne aj horizontálne rolovanie.
Tu je príklad:
pre udalosť v pygame.event.get():
ak event.type == pygame. KOLESO NA MYŠ:
ak event.y > 0:
vytlačiť ("Koleso myši sa posunulo nahor")
elif event.y < 0:
vytlačiť ("Koleso myši sa posunulo nadol")
Vytvárajte interaktívne hry s dotykovými vstupmi
S dotykovými vstupmi na mieste môžete teraz vytvárať interaktívne hry. Môžete napríklad vytvoriť hru, v ktorej sa hráč môže pohybovať po obrazovke pomocou dotykových vstupov. Môžete tiež vytvárať hry založené na gestách, kde hráč môže vykonávať rôzne gestá na spúšťanie akcií v hre.
Možnosti sú nekonečné, pokiaľ ide o vytváranie hier pomocou dotykových vstupov. S pomocou PyGame môžete vytvárať hry, ktoré sú zábavné aj interaktívne. Tak choďte von a začnite tvoriť!