Í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.

instagram viewer

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.