Egy játék semmit sem ér bevitel nélkül, és a Pygame egér- és érintéses beviteli támogatásával biztosíthatja, hogy játéka elérhető legyen.

Napjainkban mindenhol megtalálhatók az érintőképernyős eszközök. Nem meglepő, hogy a játékfejlesztők egyre gyakrabban használnak érintéses bevitelt játékaikban, és a keretrendszerek ezt egyre könnyebbé teszik.

A PyGame megkönnyíti olyan játékok és alkalmazások létrehozását, amelyek kihasználják az érintéses bemenet előnyeit.

PyGame Touch Support

A PyGame beépített támogatással rendelkezik az érintéses bemenetekkel való munkavégzéshez. Ez magában foglalja az egér és az ujjérintéses bemenetek támogatását.

Az egér észleléséhez használhatja a pygame. EGÉRGOMB LE és pygame. EGÉRGOMB FEL eseményeket. Például:

számára esemény ban ben pygame.event.get():
ha event.type == pygame. MOUSE GOMB LE:
nyomtatás("Egérgomb lenyomva")

Az ujj érintéses bemenetek észleléséhez használhatja a pygame. Ujjlefelé és pygame. FINGERUP eseményeket. Például:

számára esemény ban ben pygame.event.get():
ha event.type == pygame. Ujjlefelé:
nyomtatás("Ujj megérintette a képernyőt")

Egyszerű játék létrehozása

Az összes kódot megtalálod ez a GitHub Repo.

Kezdje egy egyszerű játék létrehozásával. Ez a játék egy játékos karakterből áll, akit érintéses bemenetekkel mozgathatsz a képernyőn. Ehhez létre kell hoznia egy játékhurkot és egy játékos karaktert.

Mielőtt elkezdené, győződjön meg arról, hogy rendelkezik pip telepítve van a készülékére, majd a következő paranccsal telepítse a PyGame modul:

pip install pygame

Most importálja a PyGame modult a játék kódjába:

import pygame
pygame.init()

Ezután hozza létre a játékablakot és egy játékobjektumot:

# Állítsa be a kijelzőt
méret = (400, 400)
képernyő = pygame.display.set_mode (méret)

# Hozzon létre egy játékos objektumot
játékos = pygame. Felület((50, 50))
player.fill((255, 0, 0))

# Állítsa be a lejátszó kezdeti pozícióját
player_pos = [175, 175]

Végül hozza létre a játékhurkot:

# A játékhurok
futás = Igaz

míg futás:
# Ellenőrizze az eseményeket
számára esemény ban ben pygame.event.get():
ha event.type == pygame. KILÉPÉS:
futás = Hamis

# Frissítse a játékos pozícióját
player_pos[0] += 5
player_pos[1] += 5

# Rajzold le a játékost
screen.blit (lejátszó, player_pos)

# Frissítse a kijelzőt
pygame.display.update()

Ne feledje, hogy a fenti kód csak egy egyszerű játékot hoz létre, ahol a játékos karakter a képernyőn mozog. A játék érdekesebbé tételéhez megteheti add hozzá a fizikát és az ütközéseket hogy akadályokat állítson a játékos elé.

Egérérintő bemenetek a játékosok mozgásához

Most, hogy van egy játékod egy játékos karakterrel, elkezdheted érintős bemenetek hozzáadását. Ehhez egy eseménykezelőt kell hozzáadnia az egér bemeneteihez. Add hozzá a pygame. EGÉRGOMB LE és pygame. EGÉRGOMB FEL eseményeket a játékhurokba.

Hozzon létre egy eseménykezelőt az egér bemeneteihez. Amikor egy játékos megnyomja az egérgombot, frissítse a karakter pozícióját az egér aktuális pozíciójára. A program figyelmen kívül hagyja az egérgomb felengedését, mivel ebben az esetben nem kell semmit tennie.

# A játékhurok
futás = Igaz

míg futás:
# Ellenőrizze az eseményeket
számára esemény ban ben pygame.event.get():
ha event.type == pygame. KILÉPÉS:
futás = Hamis
# Ellenőrizze az egér bemeneteit
elif event.type == pygame. MOUSE GOMB LE:
egér_x, egér_y = esemény.poz
player_pos[0] = egér_x
player_pos[1] = egér_y
elif event.type == pygame. MOUSEBUTTONUP:
pass

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

# Rajzold le a játékost
screen.blit (lejátszó, player_pos)

# Frissítse a kijelzőt
pygame.display.update()

Extra logikát is hozzáadhat az eseménykezelőhöz, hogy a játékos az egér bemenetére reagálva mozogjon.

Ujjérintéses bemenetek a játékos mozgásához

Az egérbemenetek mellett ujjérintéses bemeneteket is hozzáadhat. Ehhez hozzá kell adnia egy eseménykezelőt az érintéses bemenetekhez.

Add hozzá a pygame. Ujjlefelé és pygame. FINGERUP események a játékhurokban:

# A játékhurok
futás = Igaz

míg futás:
# Ellenőrizze az eseményeket
számára esemény ban ben pygame.event.get():
ha event.type == pygame. KILÉPÉS:
futás = Hamis
# Ellenőrizze az egér bemeneteit
elif event.type == pygame. MOUSE GOMB LE:
egér_x, egér_y = esemény.poz
player_pos[0] = egér_x
player_pos[1] = egér_y
elif event.type == pygame. MOUSEBUTTONUP:
pass
# Ellenőrizze az ujjbemeneteket
elif event.type == pygame. Ujjlefelé:
ujj_x, ujj_y = esemény.poz
player_pos[0] = ujj_x
player_pos[1] = ujj_y
elif event.type == pygame. FINGERUP:
pass

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

# Rajzold le a játékost
screen.blit (lejátszó, player_pos)

# Frissítse a kijelzőt
pygame.display.update()

Figyelje meg, mennyire hasonlít ez az egér bemeneti eseménykezelőjéhez. Ez az eseménykezelő frissíti a karakter pozícióját, amikor a játékos megnyomja az ujját a képernyőn. Amikor elengedik az ujjukat, nem történik semmi. Ez lehetővé teszi, hogy olyan játékot hozzon létre, amelyet mind az egér, mind az ujjérintéses bemenetekkel vezérelhet. Ne feledje, hogy más eseményeket is használhat, mint pl pygame. Ujjmozgás reagálni az ujjmozgásra.

A Pygame további érintési funkciói

Az alapvető érintőképernyős funkciókkal megkezdheti a fejlettebb funkciók hozzáadását. A PyGame néhány beépített funkcióval rendelkezik, amelyek segítségével további érintési funkciókat adhat hozzá játékához.

Az első jellemző a pygame.mouse.set_visible() funkció. Ez a funkció lehetővé teszi az egérkurzor elrejtését. Ez akkor lehet hasznos, ha olyan játékot szeretne létrehozni, amely csak érintési bemeneteket használ, az egeret nem.

Íme egy példa arra, hogyan kell használni a set_visible() funkció:

pygame.mouse.set_visible(Hamis)

A pygame.mouse.set_pos() funkció az egérkurzort a képernyőn egy adott pozícióba állítja. Ez akkor hasznos, ha az egeret az egérbemenetek használata nélkül egy adott helyre szeretné mozgatni.

Az alábbiakban egy példa látható a set_pos() funkció:

pygame.mouse.set_pos(200, 200)

Használhatja a pygame.mouse.get_rel() függvényt, hogy megkapja az egér relatív mozgását. Ennek segítségével megállapíthatja, mennyit mozdult el az egér az utolsó egéresemény óta.

Így használhatja a get_rel() funkció:

dx, dy = pygame.mouse.get_rel()

Végül használhatja a pygame.mouse.get_pressed() funkcióval ellenőrizheti, hogy a lejátszó megnyom-e valamelyik egérgombot. Ez akkor lehet hasznos, ha egér/érintős vezérléssel rendelkező játékokat hoz létre.

Az alábbiakban egy példa látható a get_pressed() funkció:

mouse_buttons = pygame.mouse.get_pressed()

A PyGame emellett a EGÉRGÖRGŐ eseménytípus, amellyel az egérgörgőt észlelheti. Támogatja a függőleges és vízszintes görgetéseket is.

Íme egy példa:

számára esemény ban ben pygame.event.get():
ha event.type == pygame. EGÉRGÖRGŐ:
ha esemény.y > 0:
nyomtatás("Az egérgörgő felfelé görgetett")
elif esemény.y < 0:
nyomtatás("Az egér görgője lefelé görgetve")

Hozzon létre interaktív játékokat érintős bemenetekkel

Az érintős bemenetekkel mostantól interaktív játékokat hozhat létre. Létrehozhat például egy játékot, amelyben a játékos érintéses bemenetekkel mozoghat a képernyőn. Létrehozhat gesztusalapú játékokat is, ahol a játékos különböző gesztusokat hajthat végre, hogy akciókat indítson el a játékban.

A lehetőségek végtelenek, amikor érintős bemenettel rendelkező játékokról van szó. A PyGame segítségével szórakoztató és interaktív játékokat hozhat létre. Szóval menj ki, és kezdj el alkotni!