Тази библиотека с игри на Python е пълна с функции, включително някои прости инструменти, които можете да използвате, за да създадете плавно превъртане с паралакс.

Превъртащите се фонове могат значително да подобрят визуалната привлекателност и дълбочината на играта. Те могат да създадат илюзията за движение, придавайки на играта динамично и завладяващо усещане. Можете да внедрите превъртащи се фонове само с няколко прости стъпки с помощта на Pygame.

Pygame е популярна библиотека на Python, която можете да използвате за разработване на игри. Добавянето на превъртащи се фонове към вашите проекти в Pygame ще ги оживи и ще осигури по-ангажиращо изживяване за играчите.

Създайте проста игра

За да разберете концепцията за превъртане на фонове в Pygame, започнете със създаване на проста игра, в която играчът може да се движи наляво и надясно. Можете също да включите две платформи, представени от правоъгълници, които да служат като игрова среда. Създайте нов файл с име проста-игра.py.

Кодът, използван в тази статия, е достъпен в това

instagram viewer
GitHub хранилище и е безплатен за използване под лиценза на MIT.

Първо импортирайте модула pygame и го инициализирайте. След това определете началната позиция и скоростта на движение на играча. Създавайте платформи с помощта на pygame. прав обекти и определяне на техните позиции и размери.

Вътре в цикъла на играта обработвайте събития като излизане от играта. Можете също да се справите движение на играча въз основа на въвеждане с докосване или клавиатура.

Ето резултата от простата игра:

Създайте различни слоеве

За да постигнете ефекта на превъртане, можете да създадете множество слоеве от фонове с различни цветове. Всеки слой ще се движи с различна скорост, създавайки ефект на паралакс. Този ефект създава илюзията за дълбочина и засилва усещането за движение в играта.

Дефинирайте два фонови слоя, всеки от които покрива целия прозорец на играта, като използвате pygame. Прави обекти. Също така дефинирайте цветовете на всеки слой в фонови_цветове списък. The фонови_скорости list определя скоростта, с която ще се движи всеки слой.

# Добавете този код под предишния раздел

фонови_слоеве = [
pygame. Rect(0, 0, ширина_на_екрана, височина_на_екрана),
pygame. Rect(0, 0, широчина_на_екрана, височина_на_екрана)
]

фон_цветове = [(30, 30, 30), (60, 60, 60)]
фонови_скорости = [0.1, 1.0]

За да създадете ефекта на превъртащия фон, трябва да актуализирате позициите на фоновите слоеве в цикъла на играта. Ще преместите всеки слой хоризонтално въз основа на зададената му скорост.

Създайте нов файл с име scrolling-bg.py и добавете кода със следните актуализации:

за аз в диапазон (len (background_layers)):
фонови_слоеве[i].x -= фонови_скорости[i]

ако background_layers[i].x <= -screen_width:
фонови_слоеве[i].x = 0

pygame.draw.rect (екран, background_colors[i], background_layers[i])

Преминете през всеки фонов слой. Извадете съответната скорост от x-координатата на слоя, карайки го да се премести наляво. Ако слой достигне левия край на екрана, нулирайте позицията му надясно, създавайки ефект на непрекъснато превъртане.

накрая начертайте всеки правоъгълен фонов слой на екрана с помощта на pygame.draw.rect() и преминаване на съответния цвят и pygame. Прав обект.

Добавяне на паралакс ефект по време на движение

За да подобрите ефекта на паралакса, можете да промените движението на платформата, така че да се случва, когато играчът се движи. Това ще създаде силно усещане за дълбочина и динамично движение. Създайте нов файл с име паралакс.py и добавете кода със следните актуализации:

# Определете позициите и скоростите на платформата
rect1 = pygame. Rect(50, височина на екрана - 100, 200, 10)
rect2 = pygame. Rect (screen_width - 250, височина на екрана - 200, 200, 10)

платформи = [
{"право": rect1, "скорост": 3},
{"право": rect2, "скорост": 1}
]

# Добавете този код в цикъла на играта

# Движение на играча
ключове = pygame.key.get_pressed()

ако ключове [pygame. K_LEFT] и player_x > 0:
player_x -= играч_скорост

за платформа в платформи:
платформа["право"].x -= платформа["скорост"]

ако ключове [pygame. K_RIGHT] и player_x player_x += player_speed

за платформа в платформи:
платформа["право"].x += платформа["скорост"]

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

Представете платформите като речници, които съдържат както правоъгълния обект (rect), така и скоростта, с която платформата трябва да се движи (скорост). Платформите се актуализират в цикъла на играта въз основа на движението на играча.

Чрез внедряването на тази модификация ефектът на превъртане ще бъде активен само когато играчът се движи активно, което допълнително подобрява илюзията за дълбочина и движение.

Включително допълнителни функции

Можете да приложите няколко допълнителни функции, за да подобрите превъртащия фон във вашата игра. Ето няколко примера.

Рандомизирайте фоновите цветове

За да добавите вариация към фоновите слоеве, можете да подредите цветовете им на случаен принцип. Можете да направите това, като промените фонови_цветове списък:

импортиране случаен

# Добавете този код преди цикъла на играта

фон_цветове = [
(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
]

Добавете още фонови слоеве

Можете да експериментирате с добавяне на повече фонови слоеве, за да създадете по-богат паралакс ефект. Просто определете допълнителни pygame. прав обекти, цветове и скорости:

# Добавете този код преди цикъла на играта

фонови_слоеве = [
pygame. Rect(0, 0, ширина_на_екрана, височина_на_екрана),
pygame. Rect(0, 0, ширина_на_екрана, височина_на_екрана),
pygame. Rect(0, 0, ширина_на_екрана, височина_на_екрана),
pygame. Rect(0, 0, широчина_на_екрана, височина_на_екрана)
]

фон_цветове = [
(30, 30, 30),
(60, 60, 60),
(90, 90, 90),
(120, 120, 120)
]

фонови_скорости = [1, 2, 3, 4]

Използвайте изображения за фонове

Вместо плътни цветове, можете да използвате файлове с изображения като фон. Pygame предоставя функции за зареждане и изобразяване на изображения.

Заредете файловете с изображения background_0.png, background_1.png, и background_2.png използвайки pygame.image.load(). Използвайте метода convert(), за да подобрите производителността и да мащабирате изображенията, за да съответстват на размерите на екрана pygame.transform.scale().

# Добавете този код преди цикъла на играта

фонови_изображения = [
pygame.image.load("background_0.png").convert(),
pygame.image.load("background_1.png").convert(),
pygame.image.load("background_2.png").convert()
]

фонови_скорости = [1, 2, 3]

за аз в диапазон (len (background_images)):
размер = (ширина_на_екрана, височина_на_екрана)
background_images[i] = pygame.transform.scale (background_images[i], размер)

Накрая актуализирайте цикъла, където рисувате фоновите слоеве, за да използвате изображенията:

# Актуализирайте този код в цикъла на играта

за аз в диапазон (len (background_layers)):
фонови_слоеве[i].x -= фонови_скорости[i]

ако background_layers[i].x <= -screen_width:
фонови_слоеве[i].x = 0

screen.blit (background_images[i], background_layers[i])

Ето някои най-добри практики, които трябва да имате предвид, когато внедрявате превъртащи се фонове във вашите проекти на Pygame.

Оптимизиране на производителността

Превъртащите се фонове включват непрекъснато изобразяване и актуализиране. За да осигурите плавен геймплей, помислете за оптимизиране на вашия код и минимизиране на ненужните изчисления.

Експериментирайте със скоростите на слоя

Регулирането на скоростите на фоновите слоеве може да създаде различни ефекти. Поиграйте си с различни стойности, за да намерите правилния баланс и да постигнете желаното визуално въздействие.

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

Уверете се, че вашите превъртащи се фонове работят добре при различни резолюции на екрана. Помислете за внедряване на динамично мащабиране или използване на различни фонови изображения за различни пропорции.

Използвайте подходящи формати на изображения

Ако решите да използвате изображения за вашия фон, изберете подходящия формат на изображението (напр. PNG, JPEG), за да балансирате размера на файла и качеството на изображението. Можете също така да намалите времето за зареждане, като компресирате и оптимизирате вашите изображения.

Помислете за използването на паметта

Ако планирате да използвате много изображения с висока разделителна способност за вашите фонове, имайте предвид изискванията за памет. Големите изображения могат да заемат значително количество памет, потенциално повлиявайки на производителността и отзивчивостта на вашата игра.

Чрез включване на превъртащи се фонове можете да създавате различни среди, като движещи се пейзажи, футуристични градски пейзажи или подводни светове. Ефектът на паралакса добавя динамично докосване, карайки света на играта да се чувства жив и интерактивен.

Не забравяйте да експериментирате, итерирате и изследвате творчески възможности с превъртащи се фонове, за да направите игрите си по-забавни и завладяващи за играчите.