Lūk, kā savai spēlei varat pievienot līmeņus, lai padarītu to saistošāku un patīkamāku.

Līmeņi ir būtisks vairuma videospēļu aspekts. Tie nodrošina struktūru, izaicinājumu un dažādību, kā arī var ievērojami uzlabot spēlētāja pieredzi. PyGame, populāra Python bibliotēka spēļu izstrādei, nodrošina dažādas funkcijas, ar kurām jūs varat viegli izveidot dažādus līmeņus. Labi izstrādāts līmenis var aizraut spēlētāju, radīt progresa sajūtu un galu galā atalgot viņu par viņu pūlēm.

Plānošanas un projektēšanas līmeņi

Pirms līmeņu izveides ir svarīgi tos plānot un noformēt. Plānošanas līmeņi palīdz izveidot labi strukturētu spēli, kas spēlētājiem nodrošina pareizo grūtības pakāpi. Lai plānotu līmeņus, jāņem vērā dažādi faktori, piemēram, spēles mehānika, stāsts un spēles kopējā struktūra.

Piemēram, ja veidojat platformas spēli, jums ir jādomā par platformu izvietojumu, ienaidniekiem un šķēršļiem. Jāņem vērā arī spēlētāja kustība, piemēram, lēkšana un skriešana, un attiecīgi jāizstrādā līmeņi.

Šajā rakstā izmantotais kods ir pieejams šajā

instagram viewer
GitHub repozitorijs un to varat izmantot bez maksas saskaņā ar MIT licenci.

Divu vienkāršu līmeņu izveide

Pirms sākat, pārliecinieties, ka jums ir pip ir instalēts jūsu sistēmā. Izmantojiet šo komandu, lai instalētu pygame bibliotēka:

pip instalēt pygame

Tagad izveidojiet divus vienkāršus līmeņus ar platformu un atskaņotāju. Šeit ir pirmā līmeņa kods:

imports pygame

pygame.init()

# Definējiet konstantes
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLATFORM_WIDTH = 100
PLATFORM_AUGSTUMS = 20
PLAYER_WIDTH = 50
SPĒLĒTĀJA_AUGSTUMS = 50
PLATFORM_COLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)

# Izveidojiet ekrānu
ekrāns = pygame.display.set_mode((EKRĀNA_WIDTH, EKRĀNA_AUGSTUMS))

# Izveidojiet platformu
platforma = pygame. Rect(350, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Izveidojiet atskaņotāju
spēlētājs = pygame. Rect(375, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Spēles cilpa
skriešana = Taisnība
kamēr darbojas:
priekš notikumu iekšā pygame.event.get():
ja event.type == pygame. IZIET:
skriešana = Nepatiesi
elifs event.type == pygame. KEYDOWN:
ja event.key == pygame. K_LEFT:
player.move_ip(-10, 0)
elifs event.key == pygame. K_RIGHT:
player.move_ip(10, 0)

# Aizpildiet ekrānu ar melnu krāsu
screen.fill((0, 0, 0))

# Uzzīmējiet platformu
pygame.draw.rect (ekrāns, PLATFORM_COLOR, platforma)

# Uzzīmējiet atskaņotāju
pygame.draw.rect (ekrāns, PLAYER_COLOR, atskaņotājs)

# Atjauniniet ekrānu
pygame.display.flip()

pygame.quit()

Pēc tam izveidojiet otro līmeni, vienkārši mainot platformu un spēlētāja pozīciju. Šeit ir otrā līmeņa kods:

imports pygame

pygame.init()

# Definējiet konstantes
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLATFORM_WIDTH = 150
PLATFORM_AUGSTUMS = 20
PLAYER_WIDTH = 50
SPĒLĒTĀJA_AUGSTUMS = 50
PLATFORM_COLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)

# Izveidojiet ekrānu
ekrāns = pygame.display.set_mode((EKRĀNA_WIDTH, EKRĀNA_AUGSTUMS))

# Izveidojiet platformu
platforma = pygame. Rect(200, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Izveidojiet atskaņotāju
spēlētājs = pygame. Rect(225, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Spēles cilpa
skriešana = Taisnība
kamēr darbojas:
priekš notikumu iekšā pygame.event.get():
ja event.type == pygame. IZIET:
skriešana = Nepatiesi
elifs event.type == pygame. KEYDOWN:
ja event.key == pygame. K_LEFT:
player.move_ip(-10, 0)
elifs event.key == pygame. K_RIGHT:
player.move_ip(10, 0)

# Aizpildiet ekrānu ar melnu krāsu
screen.fill((0, 0, 0))

# Uzzīmējiet platformu
pygame.draw.rect (ekrāns, PLATFORM_COLOR, platforma)

# Uzzīmējiet atskaņotāju
pygame.draw.rect (ekrāns, PLAYER_COLOR, atskaņotājs)

# Atjauniniet ekrānu
pygame.display.flip()

pygame.quit()

Šis kods ir līdzīgs pirmajam līmenim, taču tiek mainīta platforma un spēlētāja pozīcijas.

Dažādu līmeņu savienošana

Lai savienotu dažādus līmeņus, jums ir jāmaina spēles cilpa, lai pārslēgtos starp līmeņiem, kad spēlētājs pabeidz līmeni. To var izdarīt, izveidojot mainīgo, lai izsekotu pašreizējam līmenim, un izmantojot nosacījumu paziņojumus, lai pārslēgtos starp līmeņiem. Jūs varat arī atklāt sadursmes, lai pārbaudītu ja spēlētājs ir sasniedzis līmeņa beigas.

Šeit ir modificēta spēles cilpa:

pašreizējais_līmenis = 1

# Uzzīmējiet platformu un atskaņotāju, pamatojoties uz pašreizējo līmeni
ja pašreizējais_līmenis == 1:
pygame.draw.rect (ekrāns, PLATFORM_COLOR, platform1)
pygame.draw.rect (ekrāns, PLAYER_COLOR, atskaņotājs)
# Pārbaudiet, vai spēlētājs ir sasniedzis līmeņa beigas
ja player.colliderect (platform1) == Nepatiesi:
pašreizējais_līmenis = 2
elifs pašreizējais_līmenis == 2:
pygame.draw.rect (ekrāns, PLATFORM_COLOR, platform2)
pygame.draw.rect (ekrāns, PLAYER_COLOR, atskaņotājs)
# Pārbaudiet, vai spēlētājs ir sasniedzis līmeņa beigas
ja player.colliderect (platform2) == Taisnība:
skriešana = Nepatiesi

Spēles datu kopīgošana starp līmeņiem

Lai kopīgotu tos starp līmeņiem, jums ir jāsaglabā spēles dati. Šim nolūkam izveidojiet atsevišķu Python moduli, lai saglabātu spēles datus un importētu tos katrā līmenī.

Tālāk ir norādītas darbības.

  • Izveidojiet jaunu Python moduli ar nosaukumu game_data.py.
  • Definējiet globālo mainīgo game_data.py modulis, lai saglabātu spēlētāja pozīciju.
  • Katrā līmenī importējiet spēles_dati modulis.
  • Lai izgūtu spēlētāja pozīciju katrā līmenī, izmantojiet game_data.player_pos mainīgo, nevis izveidojot jaunu atskaņotāja objektu.
  • Lai atjauninātu spēlētāja pozīciju, mainiet vērtību game_data.player_pos katrā iterācijā.

Šeit ir modificēts kods, lai koplietotu spēlētāja pozīciju starp līmeņiem.

Iekš game_data.py moduli, pievienojiet šādu kodu:

player_pos = (0, 0)

Pirmais līmenis:

imports pygame
imports spēles_dati

# Izveidojiet atskaņotāju
spēlētājs = pygame. Rect (game_data.player_pos[0], game_data.player_pos[1], PLAYER_WIDTH, PLAYER_HEIGHT)

# Spēles cilpa
skriešana = Taisnība
kamēr darbojas:
# Uzzīmējiet atskaņotāju
pygame.draw.rect (ekrāns, PLAYER_COLOR, atskaņotājs)

# Atjauniniet spēlētāja pozīciju game_data modulī
game_data.player_pos = (player.x, player.y)

Padariet spēles saistošākas ar līmeņiem

Dažādu līmeņu pievienošana spēlei var padarīt to spēlētājiem saistošāku un patīkamāku. Savienojot līmeņus un kopīgojot spēļu datus, varat izveidot nevainojamu un vienotu spēļu pieredzi. Tas var palīdzēt spēlētājiem palikt iegremdēties spēļu pasaulē un samazināt atslēgšanās vai garlaicības iespējamību.