Унапредите своје искуство играња уз Питхон Арцаде игре тако што ћете уградити камеру.
Питхон-ова Арцаде библиотека је моћан оквир за креирање 2Д игара прилагођен кориснику. Једна кључна карактеристика која може значајно побољшати игру и корисничко искуство је додавање камере. Додавање камере вашој игри омогућава динамичку манипулацију оквиром приказа, омогућавајући играчу да истражује веће светове игре, фокусира се на одређена подручја или прати објекте у покрету.
Померањем тачке гледишта камере, можете креирати визуелно привлачне ефекте, побољшати механику играња и пружити импресивније искуство играња.
Направите једноставну игру
Пре почетка, инсталирајте пип на свој уређај и користите доњу команду да бисте инсталирали арцаде модул:
пип инсталл арцаде
Сада почните креирањем основне игре са бочним померањем у којој играч контролише карактер који може да се креће лево и десно помоћу тастера са стрелицама.
Код који се користи у овом чланку доступан је у овом ГитХуб спремиште и бесплатан је за коришћење под МИТ лиценцом.
Поред тога, можете додати препреку за навигацију играча.
увоз арцаде
СЦРЕЕН_ВИДТХ = 800
СЦРЕЕН_ХЕИГХТ = 600
МОВЕМЕНТ_СПЕЕД = 5класаМиГаме(аркада. прозор):
деф__у томе__(само, ширина, висина):
супер().__инит__(ширина, висина)
селф.плаиер_к = ширина // 2
селф.плаиер_и = висина // 2дефподесити(сам):
арцаде.сет_бацкгроунд_цолор (арцаде.цолор. НЕБЕСКО ПЛАВЕТНИЛО)дефон_драв(сам):
арцаде.старт_рендер()
арцаде.драв_цирцле_филлед (селф.плаиер_к, селф.плаиер_и, 20, арцаде.цолор. ЦРВЕНА)
арцаде.драв_рецтангле_филлед(400, 200, 80, 40, арцаде.цолор. ЗЕЛЕН)дефажурирање(селф, делта_тиме):
проћидефон_кеи_пресс(селф, кључ, модификатори):
ако кључ == арцаде.кеи. ЛИЈЕВО:
селф.плаиер_к -= МОВЕМЕНТ_СПЕЕД
елиф кључ == арцаде.кеи. ЈЕЛ ТАКО:
селф.плаиер_к += МОВЕМЕНТ_СПЕЕД
ако __наме__ == "__главни__":
игра = Моја игра (СЦРЕЕН_ВИДТХ, СЦРЕЕН_ХЕИГХТ)
гаме.сетуп()
арцаде.рун()
Подешавање камере
Да бисте додали камеру у игру, креирајте а Камера класа која управља положајем и кретањем камере. Ова класа ће имати атрибуте као што су цамера_к и цамера_и да сачувате координате камере.
класаКамера:
деф__у томе__(сам):
селф.цамера_к = 0
селф.цамера_и = 0
Покрет камере са улазима са тастатуре
Затим измените игру он_кеи_пресс метод укључивања камере кретање на основу уноса играча. Када се плејер помери лево или десно, можете ажурирати позицију камере у складу са тим. Такође, прилагодите код за цртање да узмете у обзир позицију камере приликом приказивања објеката игре.
класаМиГаме(аркада. прозор):
деф__у томе__(само, ширина, висина):
супер().__инит__(ширина, висина)
селф.цамера = Камера()
селф.плаиер_к = ширина // 2
селф.плаиер_и = висина // 2дефон_кеи_пресс(селф, кључ, модификатори):
ако кључ == арцаде.кеи. ЛИЈЕВО:
селф.плаиер_к -= МОВЕМЕНТ_СПЕЕД
селф.цамера.цамера_к -= МОВЕМЕНТ_СПЕЕД
елиф кључ == арцаде.кеи. ЈЕЛ ТАКО:
селф.плаиер_к += МОВЕМЕНТ_СПЕЕД
селф.цамера.цамера_к += МОВЕМЕНТ_СПЕЕД
дефон_драв(сам):
арцаде.старт_рендер()
арцаде.сет_виевпорт(
селф.цамера.цамера_к,
селф.цамера.цамера_к + СЦРЕЕН_ВИДТХ,
селф.цамера.цамера_и,
селф.цамера.цамера_и + СЦРЕЕН_ХЕИГХТ
)
арцаде.драв_цирцле_филлед (селф.плаиер_к, селф.плаиер_и, 20, арцаде.цолор. ЦРВЕНА)
арцаде.драв_рецтангле_филлед(400, 200, 80, 40, арцаде.цолор. ЗЕЛЕН)
Кретање камере помоћу миша
Поред уноса са тастатуре, можете омогућити и кретање камере на основу уноса мишем. На пример, можете дозволити плејеру да помера камеру превлачењем екрана. Да бисте то постигли, модификујте он_моусе_драг метод за ажурирање положаја камере на основу кретања миша.
класаМиГаме(аркада. прозор):
дефон_моусе_драг(селф, к, и, дк, ди, дугмад, модификатори):
ако дугмад == аркада. МОУСЕ_БУТТОН_ЛЕФТ:
селф.цамера.цамера_к -= дк
селф.цамера.цамера_и -= ди
Укључујући додатне функције
Додавање камере вашој игри отвара свет могућности за додатне функције и ефекте. Ево неколико примера како можете додатно побољшати своју игру користећи систем камера.
Функционалност зумирања
Да бисте имплементирали функцију зумирања, морате увести а зум променљива у Камера класе и модификовати он_моусе_сцролл метод за ажурирање нивоа зумирања на основу кретања точкића миша. Такође морате да прилагодите сет_виевпорт параметре за разматрање нивоа зумирања.
класаКамера:
деф__у томе__(сам):
селф.цамера_к = 0
селф.цамера_и = 0
селф.зоом = 1.0класаМиГаме(аркада. прозор):
дефон_моусе_сцролл(селф, к, и, сцролл_к, сцролл_и):
селф.цамера.зоом += сцролл_и * 0.1
дефон_драв(сам):
арцаде.старт_рендер()
арцаде.сет_виевпорт(
селф.цамера.цамера_к * селф.цамера.зоом,
(селф.цамера.цамера_к + СЦРЕЕН_ВИДТХ) * селф.цамера.зоом,
селф.цамера.цамера_и * селф.цамера.зоом,
(селф.цамера.цамера_и + СЦРЕЕН_ХЕИГХТ) * селф.цамера.зоом
)
арцаде.драв_цирцле_филлед (селф.плаиер_к, селф.плаиер_и, 20, арцаде.цолор. ЦРВЕНА)
арцаде.драв_рецтангле_филлед(400, 200, 80, 40, арцаде.цолор. ЗЕЛЕН)
Глатко кретање камере
Да бисте постигли глатко кретање камере, можете увести технику интерполације која се зове линеарна интерполација (лерп). Модифи тхе ажурирање метод за постепено померање камере ка циљној позицији помоћу лерп. Ово ствара ефекат глатког прелаза.
класаКамера:
деф__у томе__(сам):
селф.цамера_к = 0
селф.цамера_и = 0
селф.таргет_к = 0
селф.таргет_и = 0
селф.лерп_спеед = 0.1дефажурирање(сам):
селф.цамера_к = арцаде.лерп (селф.цамера_к, селф.таргет_к, селф.лерп_спеед)
селф.цамера_и = арцаде.лерп (селф.цамера_и, селф.таргет_и, селф.лерп_спеед)класаМиГаме(аркада. прозор):
дефажурирање(селф, делта_тиме):
селф.цамера.таргет_к = селф.плаиер_к - СЦРЕЕН_ВИДТХ // 2
селф.цамера.таргет_и = селф.плаиер_и - СЦРЕЕН_ХЕИГХТ // 2
селф.цамера.упдате()
дефон_драв(сам):
арцаде.старт_рендер()
арцаде.сет_виевпорт(
селф.цамера.цамера_к,
селф.цамера.цамера_к + СЦРЕЕН_ВИДТХ,
селф.цамера.цамера_и,
селф.цамера.цамера_и + СЦРЕЕН_ХЕИГХТ
)
арцаде.драв_цирцле_филлед (селф.плаиер_к, селф.плаиер_и, 20, арцаде.цолор. ЦРВЕНА)
арцаде.драв_рецтангле_филлед(400, 200, 80, 40, арцаде.цолор. ЗЕЛЕН)
Ограничења камере
Да бисте спречили да се камера помери изван одређених граница, можете увести ограничења. На пример, можете дефинисати минималну и максималну позицију камере и осигурати да камера остане унутар тих граница.
класаКамера:
деф__у томе__(сам):
селф.цамера_к = 0
селф.цамера_и = 0
селф.мин_к = 0
селф.мак_к = 800
селф.мин_и = 0
селф.мак_и = 600дефажурирање(сам):
селф.цамера_к = мак (селф.мин_к, мин (селф.цамера_к, селф.мак_к))
селф.цамера_и = мак (селф.мин_и, мин (селф.цамера_и, селф.мак_и))класаМиГаме(аркада. прозор):
дефажурирање(селф, делта_тиме):
селф.цамера.цамера_к = селф.плаиер_к - СЦРЕЕН_ВИДТХ // 2
селф.цамера.цамера_и = селф.плаиер_и - СЦРЕЕН_ХЕИГХТ // 2
селф.цамера.упдате()
дефон_драв(сам):
арцаде.старт_рендер()
арцаде.сет_виевпорт(
селф.цамера.цамера_к,
селф.цамера.цамера_к + СЦРЕЕН_ВИДТХ,
селф.цамера.цамера_и,
селф.цамера.цамера_и + СЦРЕЕН_ХЕИГХТ
)
арцаде.драв_цирцле_филлед (селф.плаиер_к, селф.плаиер_и, 20, арцаде.цолор. ЦРВЕНА)
арцаде.драв_рецтангле_филлед(400, 200, 80, 40, арцаде.цолор. ЗЕЛЕН)
Ово је само неколико примера како можете да искористите систем камера да бисте укључили додатне функције и ефекте у своје Питхон Арцаде игре.
Такође можете додати многе друге додатне функције својим играма заснованим на Питхон-у. На пример, можете да натерате камеру да запамти своју позицију када је играч прелази на други ниво. Ово осигурава да поглед остаје исти приликом преласка између нивоа, пружајући глатко и доследно искуство за играча.
Најбоље праксе за систем камера
Када имплементирате систем камера у своју Питхон Арцаде игру, од суштинске је важности да пратите најбоље праксе како бисте осигурали оптималну функционалност и глатко искуство играча. Ево неколико кључних смерница које треба имати на уму:
- Избегавајте прекомерно кретање камере: Иако камера може додати динамичке елементе вашој игри, кључно је успоставити равнотежу и избећи прекомерно померање камере. Непрестано померање положаја камере може дезоријентисати играче и учинити им изазовним да се крећу кроз свет игре.
- Тестирајте на различитим резолуцијама и пропорцијама: Неопходно је да тестирате систем камере на различитим резолуцијама екрана и размерама како бисте били сигурни да добро функционише на различитим уређајима и конфигурацијама. Ово ће вам помоћи да идентификујете све проблеме у вези са скалирањем оквира приказа, позиционирањем објеката или прилагођавањем пропорција.
- Оптимизујте приказивање: Систем камера може потенцијално утицати на перформансе игре, посебно када се рендерују велики светови игре или бројни објекти. Да бисте оптимизовали рендеровање, одредите који су објекти изван погледа камере и искључите их из рендеровања.
- Руковати ивицама: Обратите пажњу на ивичне случајеве у којима камера може наићи на специфичне сценарије, као што су границе, детекција судара или објекти који се преклапају. Уверите се да систем камере елегантно обрађује ове случајеве и даје глатке прелазе или одговарајуће визуелне назнаке да укаже на ограничења или интеракције са окружењем игре.
Пратећи ове најбоље праксе, можете креирати робустан систем камера прилагођен кориснику који се неприметно интегрише у ваше Питхон Арцаде игре.
Учините игре забавнијим помоћу камере
Додавањем камере у своје Питхон Арцаде игре, можете знатно побољшати урањање и ангажовање играча. Било да се ради о стварању експанзивних светова игара, фокусирању на критичне области или праћењу покретних објеката, систем камера пружа моћан алат за програмере игара.
Користећи померање камере, зумирање и додатне ефекте, можете да креирате очаравајућа искуства која очаравају играче и натерају их да се враћају по још.