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

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

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

Направите једноставну игру

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

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

Прво увезите пигаме модул и иницијализујте га. Затим дефинишите почетну позицију играча и брзину кретања. Креирајте платформе користећи пигаме. Рецт објеката и дефинише њихове позиције и димензије.

Унутар петље игре управљајте догађајима као што је напуштање игре. Такође можете да се носите кретање играча на основу додира или уноса са тастатуре.

Ево резултата једноставне игре:

Направите различите слојеве

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

Дефинишите два позадинска слоја, од којих сваки покрива цео прозор игре, користећи пигаме. Рецт објекти. Такође дефинишите боје сваког слоја у бацкгроунд_цолорс листа. Тхе бацкгроунд_спеедс листа одређује брзину којом ће се сваки слој кретати.

# Додајте овај код испод претходног одељка

бацкгроунд_лаиерс = [
пигаме. Рецт(0, 0, сцреен_видтх, сцреен_хеигхт),
пигаме. Рецт(0, 0, сцреен_видтх, сцреен_хеигхт)
]

боје_позадине = [(30, 30, 30), (60, 60, 60)]
бацкгроунд_спеедс = [0.1, 1.0]

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

Креирајте нову датотеку под називом сцроллинг-бг.пи и додајте код са ажурирањима у наставку:

за и ин опсег (лен (слојеви_позадине)):
бацкгроунд_лаиерс[и].к -= бацкгроунд_спеедс[и]

ако бацкгроунд_лаиерс[и].к <= -сцреен_видтх:
позадински_слојеви[и].к = 0

пигаме.драв.рецт (екран, боје_позадине[и], позадински слојеви[и])

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

коначно, нацртајте сваки правоугаони позадински слој на екрану користећи пигаме.драв.рецт() и преношење одговарајуће боје и пигаме. Рецт објецт.

Додавање ефекта паралаксе током кретања

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

# Дефинишите позиције и брзине платформе
рецт1 = пигаме. Рецт(50, сцреен_хеигхт - 100, 200, 10)
рецт2 = пигаме. Рецт (сцреен_видтх - 250, сцреен_хеигхт - 200, 200, 10)

платформе = [
{"рецт": рецт1, "брзина": 3},
{"рецт": рецт2, "брзина": 1}
]

# Додајте овај код унутар петље игре

# Кретање играча
кључеви = пигаме.кеи.гет_прессед()

ако кључеви [пигаме. К_ЛЕФТ] и плаиер_к > 0:
плаиер_к -= плаиер_спеед

за платформа ин платформе:
платформа["рецт"].к -= платформа["брзина"]

ако кључеви [пигаме. К_ДЕСНО] и плаиер_к < сцреен_видтх:
плаиер_к += плаиер_спеед

за платформа ин платформе:
платформа["рецт"].к += платформа["брзина"]

за платформа ин платформе:
пигаме.драв.рецт (екран, (0, 255, 0), платформа["рецт"])

Представите платформе као речнике који садрже и правоугаони објекат (рецт) и брзину којом би платформа требало да се креће (брзина). Платформе се ажурирају у петљи игре на основу кретања играча.

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

Укључујући додатне функције

Можете да имплементирате неколико додатних функција да побољшате позадине за померање у вашој игри. Ево неколико примера.

Насумично подеси боје позадине

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

увоз насумично

# Додајте овај код пре петље игре

боје_позадине = [
(рандом.рандинт(0, 255), рандом.рандинт(0, 255), рандом.рандинт(0, 255)),
(рандом.рандинт(0, 255), рандом.рандинт(0, 255), рандом.рандинт(0, 255)),
(рандом.рандинт(0, 255), рандом.рандинт(0, 255), рандом.рандинт(0, 255))
]

Додајте још позадинских слојева

Можете експериментисати са додавањем више позадинских слојева да бисте створили богатији ефекат паралаксе. Једноставно дефинишите додатне пигаме. Рецт објекти, боје и брзине:

# Додајте овај код пре петље игре

бацкгроунд_лаиерс = [
пигаме. Рецт(0, 0, сцреен_видтх, сцреен_хеигхт),
пигаме. Рецт(0, 0, сцреен_видтх, сцреен_хеигхт),
пигаме. Рецт(0, 0, сцреен_видтх, сцреен_хеигхт),
пигаме. Рецт(0, 0, сцреен_видтх, сцреен_хеигхт)
]

боје_позадине = [
(30, 30, 30),
(60, 60, 60),
(90, 90, 90),
(120, 120, 120)
]

бацкгроунд_спеедс = [1, 2, 3, 4]

Користите слике за позадину

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

Учитајте датотеке слика бацкгроунд_0.пнг, бацкгроунд_1.пнг, и бацкгроунд_2.пнг Користећи пигаме.имаге.лоад(). Користите метод цонверт() да бисте побољшали перформансе и скалирали слике тако да одговарају димензијама екрана пигаме.трансформ.сцале().

# Додајте овај код пре петље игре

бацкгроунд_имагес = [
пигаме.имаге.лоад("бацкгроунд_0.пнг").цонверт(),
пигаме.имаге.лоад("бацкгроунд_1.пнг").цонверт(),
пигаме.имаге.лоад("бацкгроунд_2.пнг").цонверт()
]

бацкгроунд_спеедс = [1, 2, 3]

за и ин опсег (лен (бацкгроунд_имагес)):
величина = (ширина_екрана, висина_екрана)
бацкгроунд_имагес[и] = пигаме.трансформ.сцале (бацкгроунд_имагес[и], величина)

На крају, ажурирајте петљу у којој цртате позадинске слојеве да бисте користили слике:

# Ажурирајте овај код унутар петље игре

за и ин опсег (лен (слојеви_позадине)):
бацкгроунд_лаиерс[и].к -= бацкгроунд_спеедс[и]

ако бацкгроунд_лаиерс[и].к <= -сцреен_видтх:
позадински_слојеви[и].к = 0

сцреен.блит (бацкгроунд_имагес[и], бацкгроунд_лаиерс[и])

Ево неколико најбољих пракси које треба узети у обзир приликом имплементације позадина за померање у вашим Пигаме пројектима.

Оптимизујте перформансе

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

Експериментишите са брзинама слојева

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

Тестирајте на различитим величинама екрана

Уверите се да ваше позадине за померање добро раде на различитим резолуцијама екрана. Размислите о примени динамичког скалирања или коришћењу различитих позадинских слика за различите размере.

Користите одговарајуће формате слика

Ако одлучите да користите слике за позадину, изаберите одговарајући формат слике (нпр. ПНГ, ЈПЕГ) да бисте уравнотежили величину датотеке и квалитет слике. Такође можете смањити време учитавања компримовањем и оптимизацијом слика.

Размотрите употребу меморије

Ако планирате да користите много слика високе резолуције за своју позадину, водите рачуна о захтевима за меморијом. Велике слике могу да заузму значајну количину меморије, потенцијално утичући на перформансе и одзив ваше игре.

Укључујући позадине за померање, можете креирати различита окружења, као што су покретни пејзажи, футуристички градски пејзажи или подводни светови. Ефекат паралаксе додаје динамичан додир, чинећи свет игре живим и интерактивним.

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