Tato herní knihovna Pythonu je plná funkcí, včetně několika jednoduchých nástrojů, které můžete použít k vytvoření hladkého paralaxního rolování.

Posouvání pozadí může výrazně zvýšit vizuální přitažlivost a hloubku hry. Dokážou vytvořit iluzi pohybu a dodat hře dynamický a pohlcující pocit. Pomocí Pygame můžete implementovat rolovací pozadí v několika jednoduchých krocích.

Pygame je oblíbená knihovna Pythonu, kterou můžete použít k vývoji her. Přidáním rolovacího pozadí do vašich projektů Pygame je oživíte a poskytnete hráčům poutavější zážitek.

Vytvořte jednoduchou hru

Abyste pochopili koncept rolování pozadí v Pygame, začněte vytvořením jednoduché hry, kde se hráč může pohybovat doleva a doprava. Můžete také zahrnout dvě platformy, reprezentované obdélníky, které budou sloužit jako herní prostředí. Vytvořte nový soubor s názvem jednoduchá hra.py.

Kód použitý v tomto článku je k dispozici v tomto úložiště GitHub a můžete jej používat zdarma pod licencí MIT.

Nejprve naimportujte modul pygame a inicializujte jej. Poté definujte výchozí pozici hráče a rychlost pohybu. Vytvářejte platformy pomocí

instagram viewer
pygame. Rect objektů a definovat jejich polohy a rozměry.

Uvnitř herní smyčky řešte události, jako je ukončení hry. Můžete také zvládnout pohyb hráče na základě dotykových vstupů nebo vstupů z klávesnice.

Zde je výstup jednoduché hry:

Vytvářejte různé vrstvy

Chcete-li dosáhnout efektu posouvání, můžete vytvořit více vrstev pozadí s různými barvami. Každá vrstva se bude pohybovat jinou rychlostí, čímž vznikne efekt paralaxy. Tento efekt dává iluzi hloubky a zvyšuje pocit pohybu ve hře.

Pomocí pygame definujte dvě vrstvy pozadí, z nichž každá pokrývá celé okno hry. Obdélníkové objekty. Definujte také barvy každé vrstvy v barvy pozadí seznam. The pozadí_rychlosti seznam určuje rychlost, jakou se budou jednotlivé vrstvy pohybovat.

# Přidejte tento kód pod předchozí sekci

background_layers = [
pygame. Rect(0, 0, screen_width, screen_height),
pygame. Rect(0, 0, screen_width, screen_height)
]

barvy_pozadi = [(30, 30, 30), (60, 60, 60)]
background_speeds = [0.1, 1.0]

Chcete-li vytvořit efekt rolování pozadí, musíte aktualizovat pozice vrstev pozadí ve smyčce hry. Každou vrstvu budete pohybovat vodorovně na základě její přiřazené rychlosti.

Vytvořte nový soubor s názvem rolování-bg.py a přidejte kód s níže uvedenými aktualizacemi:

pro i v rozsah (délka (vrstvy_pozadí)):
background_layers[i].x -= background_speeds[i]

-li background_layers[i].x <= -screen_width:
background_layers[i].x = 0

pygame.draw.rect (screen, background_colors[i], background_layers[i])

Iterujte každou vrstvu pozadí. Odečtěte odpovídající rychlost od x-ové souřadnice vrstvy, což způsobí, že se vrstva posune doleva. Pokud vrstva dosáhne levého okraje obrazovky, obnovte její polohu doprava, čímž vytvoříte efekt nepřetržitého posouvání.

Konečně, nakreslete každou obdélníkovou vrstvu pozadí na obrazovce pomocí pygame.draw.rect() a předání odpovídající barvy a pygame. Obdélníkový objekt.

Přidání efektu paralaxy při pohybu

Chcete-li zesílit efekt paralaxy, můžete upravit pohyb plošiny tak, aby nastal, když se hráč pohybuje. To vytvoří silný pocit hloubky a dynamického pohybu. Vytvořte nový soubor s názvem paralaxa.py a přidejte kód s níže uvedenými aktualizacemi:

# Definujte polohy a rychlosti plošiny
rect1 = pygame. Rect(50, výška_obrazovky - 100, 200, 10)
rect2 = pygame. Obdélníkový (screen_width - 250, výška_obrazovky - 200, 200, 10)

platformy = [
{"pravý": obdélník 1, "Rychlost": 3},
{"pravý": obdélník 2, "Rychlost": 1}
]

# Přidejte tento kód do herní smyčky

# Pohyb hráče
keys = pygame.key.get_pressed()

-li klíče [pygame. K_LEFT] a player_x > 0:
player_x -= player_speed

pro plošina v platformy:
plošina["pravý"].x -= platforma["Rychlost"]

-li klíče [pygame. K_RIGHT] a player_x < screen_width:
player_x += player_speed

pro plošina v platformy:
plošina["pravý"].x += platforma["Rychlost"]

pro plošina v platformy:
pygame.draw.rect (obrazovka, (0, 255, 0), plošina["pravý"])

Představte platformy jako slovníky, které obsahují objekt obdélník (rect) a rychlost, kterou by se měla platforma pohybovat (rychlost). Platformy se ve smyčce hry aktualizují na základě pohybu hráče.

Implementací této modifikace bude efekt rolování aktivní pouze tehdy, když se hráč aktivně pohybuje, což dále posílí iluzi hloubky a pohybu.

Včetně dalších funkcí

Můžete implementovat několik dalších funkcí pro vylepšení rolovacího pozadí ve vaší hře. Zde jsou nějaké příklady.

Náhodné barvy pozadí

Chcete-li přidat variaci do vrstev pozadí, můžete náhodně upravit jejich barvy. Můžete to udělat úpravou barvy pozadí seznam:

import náhodný

# Přidejte tento kód před herní smyčku

barvy_pozadi = [
(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))
]

Přidejte další vrstvy pozadí

Můžete experimentovat s přidáním dalších vrstev pozadí, abyste vytvořili bohatší paralaxový efekt. Jednoduše definujte další pygame. Rect objekty, barvy a rychlosti:

# Přidejte tento kód před herní smyčku

background_layers = [
pygame. Rect(0, 0, screen_width, screen_height),
pygame. Rect(0, 0, screen_width, screen_height),
pygame. Rect(0, 0, screen_width, screen_height),
pygame. Rect(0, 0, screen_width, screen_height)
]

barvy_pozadi = [
(30, 30, 30),
(60, 60, 60),
(90, 90, 90),
(120, 120, 120)
]

background_speeds = [1, 2, 3, 4]

Použít obrázky jako pozadí

Místo plných barev můžete jako pozadí použít soubory obrázků. Pygame poskytuje funkce pro načítání a vykreslování obrázků.

Načtěte soubory obrázků background_0.png, background_1.png, a background_2.png použitím pygame.image.load(). Pomocí metody convert() zlepšíte výkon a změníte měřítko obrázků tak, aby odpovídaly rozměrům obrazovky pygame.transform.scale().

# Přidejte tento kód před herní smyčku

background_images = [
pygame.image.load("background_0.png").konvertovat(),
pygame.image.load("background_1.png").konvertovat(),
pygame.image.load("background_2.png").konvertovat()
]

background_speeds = [1, 2, 3]

pro i v rozsah (len (background_images)):
size = (screen_width, screen_height)
background_images[i] = pygame.transform.scale (background_images[i], velikost)

Nakonec aktualizujte smyčku, kde kreslíte vrstvy pozadí, abyste mohli používat obrázky:

# Aktualizujte tento kód uvnitř herní smyčky

pro i v rozsah (délka (vrstvy_pozadí)):
background_layers[i].x -= background_speeds[i]

-li background_layers[i].x <= -screen_width:
background_layers[i].x = 0

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

Zde je několik osvědčených postupů, které je třeba zvážit při implementaci rolovacího pozadí ve vašich projektech Pygame.

Optimalizovat výkon

Posouvání pozadí zahrnuje průběžné vykreslování a aktualizaci. Chcete-li zajistit plynulé hraní, zvažte optimalizaci kódu a minimalizaci zbytečných výpočtů.

Experimentujte s rychlostmi vrstev

Nastavením rychlosti vrstev pozadí lze vytvořit různé efekty. Pohrajte si s různými hodnotami, abyste našli správnou rovnováhu a dosáhli požadovaného vizuálního dopadu.

Test na různých velikostech obrazovky

Ujistěte se, že vaše rolovací pozadí funguje dobře na různých rozlišeních obrazovky. Zvažte implementaci dynamického škálování nebo použití různých obrázků na pozadí pro různé poměry stran.

Použijte vhodné formáty obrázků

Pokud se rozhodnete pro pozadí použít obrázky, vyberte vhodný formát obrázku (např. PNG, JPEG), abyste vyvážili velikost souboru a kvalitu obrázku. Dobu načítání můžete zkrátit také komprimací a optimalizací obrázků.

Zvažte využití paměti

Pokud plánujete pro svá pozadí použít mnoho obrázků s vysokým rozlišením, pamatujte na požadavky na paměť. Velké obrázky mohou spotřebovat značné množství paměti, což může ovlivnit výkon a odezvu vaší hry.

Začleněním rolovacího pozadí můžete vytvářet různá prostředí, jako jsou pohyblivé krajiny, futuristická panoráma měst nebo podvodní světy. Efekt paralaxy dodává dynamický nádech, díky čemuž je herní svět živý a interaktivní.

Nezapomeňte experimentovat, opakovat a prozkoumávat kreativní možnosti s rolováním pozadí, aby byly vaše hry pro hráče zábavnější a podmanivé.