Ево како можете додати нивое својој игри да бисте је учинили занимљивијом и пријатнијом.

Нивои су суштински аспект већине видео игара. Они пружају структуру, изазове и разноврсност и могу значајно побољшати искуство играча. ПиГаме, популарна Питхон библиотека за развој игара, пружа различите функције помоћу којих можете лако креирати различите нивое. Добро осмишљен ниво може очарати играча, створити осећај напредовања и на крају га наградити за труд.

Планирање и пројектовање нивоа

Пре креирања нивоа, неопходно је да их испланирате и дизајнирате. Нивои планирања помажу у стварању добро структуиране игре која играчима пружа прави ниво тежине. Да бисте планирали нивое, морате узети у обзир различите факторе као што су механика игре, прича и укупна структура игре.

На пример, ако дизајнирате платформер игру, морате размислити о постављању платформи, непријатељима и препрекама. Такође морате узети у обзир покрете играча, као што су скакање и трчање, и дизајнирати нивое у складу са тим.

Код који се користи у овом чланку доступан је у овом

instagram viewer
ГитХуб спремиште и бесплатан је за коришћење под МИТ лиценцом.

Креирање два једноставна нивоа

Пре него што почнете, уверите се да имате пип инсталиран на вашем систему. Користите ову команду да бисте инсталирали пигаме библиотека:

пип инсталл пигаме

Сада направите два једноставна нивоа са платформом и играчем. Ево кода за први ниво:

увоз пигаме

пигаме.инит()

# Дефинишите константе
СЦРЕЕН_ВИДТХ = 800
СЦРЕЕН_ХЕИГХТ = 600
ПЛАТФОРМ_ВИДТХ = 100
ПЛАТФОРМ_ХЕИГХТ = 20
ПЛАИЕР_ВИДТХ = 50
ПЛАИЕР_ХЕИГХТ = 50
ПЛАТФОРМА_БОЈА = (255, 255, 255)
ПЛАИЕР_ЦОЛОР = (255, 0, 0)

# Креирајте екран
екран = пигаме.дисплаи.сет_моде((СЦРЕЕН_ВИДТХ, СЦРЕЕН_ХЕИГХТ))

# Креирајте платформу
платформа = пигаме. Рецт(350, 500, ПЛАТФОРМ_ВИДТХ, ПЛАТФОРМ_ХЕИГХТ)

# Креирајте плејер
играч = пигаме. Рецт(375, 450, ПЛАИЕР_ВИДТХ, ПЛАИЕР_ХЕИГХТ)

# Игра петља
трчање = Истина
док трчање:
за догађај ин пигаме.евент.гет():
ако евент.типе == пигаме. ОДУСТАТИ:
трчање = Фалсе
елиф евент.типе == пигаме. КЕИДОВН:
ако евент.кеи == пигаме. К_ЛЕФТ:
плаиер.мове_ип(-10, 0)
елиф евент.кеи == пигаме. К_ДЕСНО:
плаиер.мове_ип(10, 0)

# Попуните екран црном бојом
сцреен.филл((0, 0, 0))

# Нацртајте платформу
пигаме.драв.рецт (екран, ПЛАТФОРМ_ЦОЛОР, платформа)

# Нацртајте играча
пигаме.драв.рецт (екран, ПЛАИЕР_ЦОЛОР, играч)

# Ажурирајте екран
пигаме.дисплаи.флип()

пигаме.куит()

Након тога направите други ниво једноставном променом платформе и позиције играча. Ево кода за други ниво:

увоз пигаме

пигаме.инит()

# Дефинишите константе
СЦРЕЕН_ВИДТХ = 800
СЦРЕЕН_ХЕИГХТ = 600
ПЛАТФОРМ_ВИДТХ = 150
ПЛАТФОРМ_ХЕИГХТ = 20
ПЛАИЕР_ВИДТХ = 50
ПЛАИЕР_ХЕИГХТ = 50
ПЛАТФОРМА_БОЈА = (255, 255, 255)
ПЛАИЕР_ЦОЛОР = (255, 0, 0)

# Креирајте екран
екран = пигаме.дисплаи.сет_моде((СЦРЕЕН_ВИДТХ, СЦРЕЕН_ХЕИГХТ))

# Креирајте платформу
платформа = пигаме. Рецт(200, 500, ПЛАТФОРМ_ВИДТХ, ПЛАТФОРМ_ХЕИГХТ)

# Креирајте плејер
играч = пигаме. Рецт(225, 450, ПЛАИЕР_ВИДТХ, ПЛАИЕР_ХЕИГХТ)

# Игра петља
трчање = Истина
док трчање:
за догађај ин пигаме.евент.гет():
ако евент.типе == пигаме. ОДУСТАТИ:
трчање = Фалсе
елиф евент.типе == пигаме. КЕИДОВН:
ако евент.кеи == пигаме. К_ЛЕФТ:
плаиер.мове_ип(-10, 0)
елиф евент.кеи == пигаме. К_ДЕСНО:
плаиер.мове_ип(10, 0)

# Попуните екран црном бојом
сцреен.филл((0, 0, 0))

# Нацртајте платформу
пигаме.драв.рецт (екран, ПЛАТФОРМ_ЦОЛОР, платформа)

# Нацртајте играча
пигаме.драв.рецт (екран, ПЛАИЕР_ЦОЛОР, играч)

# Ажурирајте екран
пигаме.дисплаи.флип()

пигаме.куит()

Овај код је сличан првом нивоу, али су платформа и позиције играча промењене.

Повезивање различитих нивоа

Да бисте повезали различите нивое, морате да модификујете петљу игре да бисте се пребацивали између нивоа када играч заврши ниво. То можете учинити тако што ћете креирати променљиву за праћење тренутног нивоа и користити условне изјаве за пребацивање између нивоа. Можете такође открити колизије за проверу ако је играч дошао до краја нивоа.

Ево модификоване петље игре:

тренутни_ниво = 1

# Нацртајте платформу и играча на основу тренутног нивоа
ако тренутни_ниво == 1:
пигаме.драв.рецт (екран, ПЛАТФОРМ_ЦОЛОР, платформа1)
пигаме.драв.рецт (екран, ПЛАИЕР_ЦОЛОР, играч)
# Проверите да ли је играч стигао до краја нивоа
ако плаиер.цоллидерецт (платформа1) == Фалсе:
тренутни_ниво = 2
елиф тренутни_ниво == 2:
пигаме.драв.рецт (екран, ПЛАТФОРМ_ЦОЛОР, платформа2)
пигаме.драв.рецт (екран, ПЛАИЕР_ЦОЛОР, играч)
# Проверите да ли је играч стигао до краја нивоа
ако плаиер.цоллидерецт (платформа2) == Истина:
трчање = Фалсе

Дељење података игре између нивоа

Морате да сачувате податке игре да бисте их поделили између нивоа. За то направите посебан Питхон модул за чување података игре и увоз на сваки ниво.

Ево корака:

  • Креирајте нови Питхон модул под називом гаме_дата.пи.
  • Дефинишите глобалну променљиву у гаме_дата.пи модул за чување позиције играча.
  • На сваком нивоу увезите гаме_дата модул.
  • Да бисте вратили позицију играча на сваком нивоу, користите гаме_дата.плаиер_пос променљива уместо креирања новог објекта играча.
  • Да бисте ажурирали позицију играча, промените вредност гаме_дата.плаиер_пос у свакој итерацији.

Ево модификованог кода за дељење позиције играча између нивоа.

У гаме_дата.пи модул, додајте следећи код:

плаиер_пос = (0, 0)

Први ниво:

увоз пигаме
увоз гаме_дата

# Креирајте плејер
играч = пигаме. Рецт (гаме_дата.плаиер_пос[0], гаме_дата.плаиер_пос[1], ПЛАИЕР_ВИДТХ, ПЛАИЕР_ХЕИГХТ)

# Игра петља
трчање = Истина
док трчање:
# Нацртајте играча
пигаме.драв.рецт (екран, ПЛАИЕР_ЦОЛОР, играч)

# Ажурирајте позицију играча у модулу гаме_дата
гаме_дата.плаиер_пос = (плаиер.к, плаиер.и)

Учините игре занимљивијим са нивоима

Додавање различитих нивоа вашој игри може је учинити занимљивијом и пријатнијом за играче. Повезивањем нивоа и дељењем података о игри, можете створити беспрекорно и кохезивно искуство играња. Ово може помоћи играчима да остану уроњени у свет игре и да смање вероватноћу одвајања или досаде.