Így adhatsz szinteket játékodhoz, hogy vonzóbbá és élvezetesebbé tegye azt.
A szintek a legtöbb videojáték alapvető szempontjai. Szerkezetet, kihívást és változatosságot biztosítanak, és jelentősen javíthatják a játékos élményét. A PyGame, egy népszerű Python-könyvtár a játékfejlesztéshez, különféle funkciókat kínál, amelyekkel könnyedén létrehozhat különféle szinteket. Egy jól megtervezett pálya magával ragadhatja a játékost, a fejlődés érzését keltheti, és végső soron megjutalmazhatja erőfeszítéseiket.
Tervezési és tervezési szintek
A szintek létrehozása előtt feltétlenül meg kell tervezni és megtervezni azokat. A tervezési szintek segítenek egy jól felépített játék létrehozásában, amely megfelelő nehézségi szintet biztosít a játékosok számára. A szintek megtervezéséhez különféle tényezőket kell figyelembe venni, például a játék mechanikáját, a történetet és a játék általános szerkezetét.
Például, ha egy platformer játékot tervez, akkor át kell gondolnia a platformok elhelyezését, az ellenségeket és az akadályokat. Figyelembe kell vennie a játékos mozgását is, mint például az ugrást és a futást, és ennek megfelelően kell kialakítania a szinteket.
A cikkben használt kód itt érhető el GitHub adattár és az MIT licence alapján ingyenesen használható.
Két egyszerű szint létrehozása
Mielőtt elkezdené, győződjön meg arról, hogy rendelkezik pip telepítve van a rendszerére. Ezzel a paranccsal telepítheti a pygame könyvtár:
pip install pygame
Most hozzon létre két egyszerű pályát egy platformmal és egy játékossal. Íme az első szint kódja:
import pygame
pygame.init()
# Állandók meghatározása
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLATFORM_WIDTH = 100
PLATFORM_HEIGHT = 20
PLAYER_WIDTH = 50
PLAYER_HEIGHT = 50
PLATFORM_COLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)# Hozza létre a képernyőt
képernyő = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))# Hozd létre a platformot
platform = pygame. Rect(350, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)# Hozd létre a lejátszót
játékos = pygame. Rect(375, 450, PLAYER_WIDTH, PLAYER_HEIGHT)# Játékhurok
futás = Igaz
míg futás:
számára esemény ban ben pygame.event.get():
ha event.type == pygame. KILÉPÉS:
futás = Hamis
elif event.type == pygame. KEYDOWN:
ha event.key == pygame. K_LEFT:
player.move_ip(-10, 0)
elif event.key == pygame. K_RIGHT:
player.move_ip(10, 0)# Töltse ki a képernyőt fekete színnel
screen.fill((0, 0, 0))# Rajzolja meg a platformot
pygame.draw.rect (képernyő, PLATFORM_COLOR, platform)# Rajzold le a játékost
pygame.draw.rect (képernyő, PLAYER_COLOR, lejátszó)# Frissítse a képernyőt
pygame.display.flip()
pygame.quit()
Ezután hozza létre a második szintet a platform és a játékos pozíciójának megváltoztatásával. Íme a második szint kódja:
import pygame
pygame.init()
# Állandók meghatározása
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLATFORM_WIDTH = 150
PLATFORM_HEIGHT = 20
PLAYER_WIDTH = 50
PLAYER_HEIGHT = 50
PLATFORM_COLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)# Hozza létre a képernyőt
képernyő = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))# Hozd létre a platformot
platform = pygame. Rect(200, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)# Hozd létre a lejátszót
játékos = pygame. Rect(225, 450, PLAYER_WIDTH, PLAYER_HEIGHT)# Játékhurok
futás = Igaz
míg futás:
számára esemény ban ben pygame.event.get():
ha event.type == pygame. KILÉPÉS:
futás = Hamis
elif event.type == pygame. KEYDOWN:
ha event.key == pygame. K_LEFT:
player.move_ip(-10, 0)
elif event.key == pygame. K_RIGHT:
player.move_ip(10, 0)# Töltse ki a képernyőt fekete színnel
screen.fill((0, 0, 0))# Rajzolja meg a platformot
pygame.draw.rect (képernyő, PLATFORM_COLOR, platform)# Rajzold le a játékost
pygame.draw.rect (képernyő, PLAYER_COLOR, lejátszó)# Frissítse a képernyőt
pygame.display.flip()
pygame.quit()
Ez a kód hasonló az első szinthez, de a platform és a játékos pozíciója megváltozik.
Különböző szintek összekapcsolása
A különböző szintek összekapcsolásához módosítania kell a játékhurkot, hogy váltson a szintek között, amikor a játékos teljesít egy pályát. Ezt úgy teheti meg, hogy létrehoz egy változót az aktuális szint nyomon követésére, és feltételes utasításokkal válthat a szintek között. Te is ütközések észlelése az ellenőrzéshez ha a játékos elérte egy szint végét.
Íme a módosított játékhurok:
jelenlegi_szint = 1
# Rajzolja meg a platformot és a játékost az aktuális szint alapján
ha jelenlegi_szint == 1:
pygame.draw.rect (képernyő, PLATFORM_COLOR, platform1)
pygame.draw.rect (képernyő, PLAYER_COLOR, lejátszó)
# Ellenőrizze, hogy a játékos elérte-e a szint végét
ha player.colliderect (platform1) == Hamis:
jelenlegi_szint = 2
elif jelenlegi_szint == 2:
pygame.draw.rect (képernyő, PLATFORM_COLOR, platform2)
pygame.draw.rect (képernyő, PLAYER_COLOR, lejátszó)
# Ellenőrizze, hogy a játékos elérte-e a szint végét
ha player.colliderect (platform2) == Igaz:
futás = Hamis
A játékadatok megosztása szintek között
Tárolnod kell a játékadatokat, hogy megoszthasd azokat a szintek között. Ehhez hozzon létre egy külön Python modult a játékadatok tárolására, és importálja azokat minden szintre.
Íme a lépések:
- Hozzon létre egy új Python modult, melynek neve game_data.py.
- Határozzon meg egy globális változót a game_data.py modul a játékos pozíciójának tárolására.
- Minden szinten importálja a game_data modult.
- A játékos pozíciójának minden szinten lekéréséhez használja a game_data.player_pos változó helyett új játékos objektumot hoz létre.
- A játékos pozíciójának frissítéséhez módosítsa az értékét game_data.player_pos minden iterációban.
Íme a módosított kód, amellyel megoszthatja a játékos pozícióját a szintek között.
Ban,-ben game_data.py modulhoz adja hozzá a következő kódot:
player_pos = (0, 0)
Első szint:
import pygame
import game_data# Hozd létre a lejátszót
játékos = pygame. Rect (game_data.player_pos[0], game_data.player_pos[1], PLAYER_WIDTH, PLAYER_HEIGHT)# Játékhurok
futás = Igaz
míg futás:
# Rajzold le a játékost
pygame.draw.rect (képernyő, PLAYER_COLOR, lejátszó)
# Frissítse a játékos pozícióját a game_data modulban
game_data.player_pos = (player.x, player.y)
Tedd vonzóbbá a játékokat a szintek segítségével
Különböző szintek hozzáadása a játékhoz vonzóbbá és élvezetesebbé teheti a játékosok számára. A szintek összekapcsolásával és a játékadatok megosztásával zökkenőmentes és összefüggő játékélményt teremthet. Ez segíthet a játékosoknak elmerülni a játék világában, és csökkentheti az elszakadás vagy az unalom valószínűségét.