Hra není nic bez vstupu a s podporou Pygame pro vstup myší i dotykem můžete zajistit, aby byla vaše hra přístupná.

V dnešní době jsou dotyková zařízení všude. Není žádným překvapením, že herní vývojáři ve svých hrách stále více využívají dotykový vstup a frameworky to usnadňují a usnadňují.

PyGame usnadňuje vytváření her a aplikací, které mohou využívat dotykové vstupy.

Dotyková podpora PyGame

PyGame má vestavěnou podporu pro práci s dotykovými vstupy. To zahrnuje podporu pro dotykové vstupy myši a prstů.

K detekci myši můžete použít pygame. Tlačítko myši a pygame. Tlačítko myši Události. Například:

pro událost v pygame.event.get():
-li event.type == pygame. MOUSEBUTTONDOWN:
tisk("Tlačítko myši stisknuto")

K detekci dotykových vstupů můžete použít pygame. DOLŮ Prstem a pygame. ZVÝŠENÝ PRST Události. Například:

pro událost v pygame.event.get():
-li event.type == pygame. DOLŮ Prstem:
tisk("Prst se dotkl obrazovky")

Vytvoření jednoduché hry

Celý kód najdete v tento GitHub Repo.

Začněte vytvořením jednoduché hry. Tato hra se bude skládat z postavy hráče, kterou můžete pohybovat po obrazovce pomocí dotykových vstupů. K tomu budete muset vytvořit herní smyčku a hráčskou postavu.

instagram viewer

Než začnete, ujistěte se, že máte pip nainstalovaný na vašem zařízenía poté pomocí následujícího příkazu nainstalujte soubor PyGame modul:

pip nainstalovat pygame

Nyní importujte modul PyGame do kódu hry:

import pygame
pygame.init()

Poté vytvořte herní okno a herní objekt:

# Nastavte displej
velikost = (400, 400)
obrazovka = pygame.display.set_mode (velikost)

# Vytvořte objekt hráče
hráč = pygame. Povrch((50, 50))
player.fill((255, 0, 0))

# Nastavte výchozí pozici přehrávače
player_pos = [175, 175]

Nakonec vytvořte herní smyčku:

# Herní smyčka
běh = Skutečný

zatímco běh:
# Zkontrolujte události
pro událost v pygame.event.get():
-li event.type == pygame. PŘESTAT:
běh = Nepravdivé

# Aktualizujte pozici hráče
hráčská pozice[0] += 5
hráčská pozice[1] += 5

# Nakreslete přehrávač
screen.blit (player, player_pos)

# Aktualizujte displej
pygame.display.update()

Všimněte si, že výše uvedený kód vytváří pouze jednoduchou hru, kde se postava hráče pohybuje po obrazovce. Aby byla hra zajímavější, můžete přidat fyziku a srážky vytvářet překážky, které musí hráč překonat.

Dotykové vstupy myši pro pohyb hráče

Nyní, když máte hru s hráčskou postavou, můžete začít přidávat dotykové vstupy. Chcete-li to provést, budete muset přidat obslužnou rutinu události pro vstupy myši. Přidat pygame. Tlačítko myši a pygame. Tlačítko myši události do herní smyčky.

Vytvořte obslužnou rutinu události pro vstupy myši. Když hráč stiskne tlačítko myši, aktualizuje pozici postavy na aktuální pozici myši. Program bude ignorovat uvolnění tlačítka myši, protože v takovém případě nemusí provádět žádnou akci.

# Herní smyčka
běh = Skutečný

zatímco běh:
# Zkontrolujte události
pro událost v pygame.event.get():
-li event.type == pygame. PŘESTAT:
běh = Nepravdivé
# Zkontrolujte vstupy myši
elif event.type == pygame. MOUSEBUTTONDOWN:
mouse_x, mouse_y = event.pos
hráčská pozice[0] = mouse_x
hráčská pozice[1] = mouse_y
elif event.type == pygame. Tlačítko myši:
složit

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

# Nakreslete přehrávač
screen.blit (player, player_pos)

# Aktualizujte displej
pygame.display.update()

K obsluze události můžete také přidat další logiku, aby se hráč pohyboval v reakci na vstup myši.

Dotykové vstupy pro pohyb hráče

Kromě vstupů myší můžete přidat také dotykové vstupy. Chcete-li to provést, budete muset přidat obsluhu události pro dotykové vstupy.

Přidat pygame. DOLŮ Prstem a pygame. ZVÝŠENÝ PRST události do herní smyčky:

# Herní smyčka
běh = Skutečný

zatímco běh:
# Zkontrolujte události
pro událost v pygame.event.get():
-li event.type == pygame. PŘESTAT:
běh = Nepravdivé
# Zkontrolujte vstupy myši
elif event.type == pygame. MOUSEBUTTONDOWN:
mouse_x, mouse_y = event.pos
hráčská pozice[0] = mouse_x
hráčská pozice[1] = mouse_y
elif event.type == pygame. Tlačítko myši:
složit
# Zkontrolujte prstové vstupy
elif event.type == pygame. DOLŮ Prstem:
prst_x, prst_y = event.pos
hráčská pozice[0] = finger_x
hráčská pozice[1] = finger_y
elif event.type == pygame. UP:
složit

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

# Nakreslete přehrávač
screen.blit (player, player_pos)

# Aktualizujte displej
pygame.display.update()

Všimněte si, jak je to podobné obslužné rutině události vstupu myši. Tento ovladač události aktualizuje polohu postavy, když hráč stiskne prst na obrazovce. Když prst pustí, nic se nestane. To vám umožní vytvořit hru, kterou můžete ovládat pomocí myši i dotyku prstů. Mějte na paměti, že můžete využít i jiné akce jako např pygame. POHYB PRSTŮ reagovat na pohyb prstů.

Další dotykové funkce Pygame

Se základními dotykovými funkcemi můžete začít přidávat další pokročilé funkce. PyGame má několik vestavěných funkcí, které vám mohou pomoci přidat do hry další dotykové funkce.

První funkcí je pygame.mouse.set_visible() funkce. Tato funkce umožňuje skrýt kurzor myši. To může být užitečné, pokud chcete vytvořit hru, která používá pouze dotykové vstupy a nikoli myš.

Zde je příklad, jak použít set_visible() funkce:

pygame.mouse.set_visible(Nepravdivé)

The pygame.mouse.set_pos() funkce nastaví kurzor myši na určitou pozici na obrazovce. To je užitečné, pokud chcete přesunout myš na určité místo bez použití vstupů myši.

Níže je uveden příklad, jak použít set_pos() funkce:

pygame.mouse.set_pos(200, 200)

Můžete použít pygame.mouse.get_rel() funkce pro získání relativního pohybu myši. Můžete to použít ke zjištění, jak daleko se myš posunula od poslední události myši.

Takto můžete použít get_rel() funkce:

dx, dy = pygame.mouse.get_rel()

Nakonec můžete použít pygame.mouse.get_pressed() funkce pro kontrolu, zda hráč stiskne nějaké tlačítko myši. To může být užitečné při vytváření her s ovládáním myší/dotykem.

Níže je uveden příklad, jak použít get_pressed() funkce:

mouse_buttons = pygame.mouse.get_pressed()

PyGame také poskytuje a KOLEČKO MYŠI typ události, který můžete použít k detekci posouvání kolečka myši. Podporuje vertikální i horizontální posouvání.

Zde je příklad:

pro událost v pygame.event.get():
-li event.type == pygame. KOLEČKO MYŠI:
-li event.y > 0:
tisk("Kolo myši se posunulo nahoru")
elif event.y < 0:
tisk("Kolo myši se posunulo dolů")

Vytvářejte interaktivní hry s dotykovými vstupy

S dotykovými vstupy nyní můžete vytvářet interaktivní hry. Můžete například vytvořit hru, kde se hráč může pohybovat po obrazovce pomocí dotykových vstupů. Můžete také vytvářet hry založené na gestech, kde hráč může provádět různá gesta pro spouštění akcí ve hře.

Možnosti jsou nekonečné, pokud jde o vytváření her s dotykovými vstupy. S pomocí PyGame můžete vytvářet hry, které jsou zábavné a interaktivní. Tak se tam vydejte a začněte tvořit!