Deze Python-spelbibliotheek zit vol met functies, waaronder enkele eenvoudige hulpmiddelen die u kunt gebruiken om soepel, parallax-scrollen te creëren.
Scrollende achtergronden kunnen de visuele aantrekkingskracht en diepte van een game aanzienlijk vergroten. Ze kunnen de illusie van beweging creëren, waardoor het spel een dynamisch en meeslepend gevoel krijgt. U kunt scrollende achtergronden in slechts een paar eenvoudige stappen implementeren met Pygame.
Pygame is een populaire Python-bibliotheek die je kunt gebruiken om games te ontwikkelen. Door scrollende achtergronden aan je Pygame-projecten toe te voegen, komen ze tot leven en bieden spelers een meer boeiende ervaring.
Maak een eenvoudig spel
Om het concept van scrollende achtergronden in Pygame te begrijpen, begin je met het maken van een eenvoudig spel waarin de speler naar links en rechts kan bewegen. Je kunt ook twee platforms opnemen, weergegeven door rechthoeken, om als spelomgeving te dienen. Maak een nieuw bestand met de naam simpel-spel.py.
De code die in dit artikel wordt gebruikt, is hierin beschikbaar GitHub-opslagplaats en is gratis voor u om te gebruiken onder de MIT-licentie.
Importeer eerst de pygame-module en initialiseer deze. Definieer vervolgens de startpositie en bewegingssnelheid van de speler. Maak platforms met behulp van pyspel. Rect objecten en definieer hun posities en afmetingen.
Binnen de gamelus regel je gebeurtenissen zoals het afsluiten van de game. Je kunt ook omgaan beweging van de speler op basis van aanraking of toetsenbordinvoer.
Dit is de uitvoer van het eenvoudige spel:
Maak verschillende lagen
Om het scroll-effect te bereiken, kunt u meerdere achtergrondlagen met verschillende kleuren maken. Elke laag beweegt met een andere snelheid, waardoor een parallax-effect ontstaat. Dit effect geeft de illusie van diepte en versterkt het gevoel van beweging in het spel.
Definieer twee achtergrondlagen, die elk het hele spelvenster bedekken, met behulp van pygame. Rechte objecten. Definieer ook de kleuren van elke laag in de achtergrondkleuren lijst. De background_speeds lijst bepaalt de snelheid waarmee elke laag zal bewegen.
# Voeg deze code toe onder de vorige sectie
achtergrond_lagen = [
pyspel. Recht(0, 0, schermbreedte, schermhoogte),
pyspel. Recht(0, 0, schermbreedte, schermhoogte)
]
achtergrondkleuren = [(30, 30, 30), (60, 60, 60)]
achtergrond_snelheden = [0.1, 1.0]
Om het scrollende achtergrondeffect te creëren, moet u de posities van de achtergrondlagen in de gamelus bijwerken. Je verplaatst elke laag horizontaal op basis van de toegewezen snelheid.
Maak een nieuw bestand met de naam scrollen-bg.py en voeg de code toe met de onderstaande updates:
voor i in bereik (len (achtergrond_lagen)):
background_layers[i].x -= background_speeds[i]als background_layers[i].x <= -screen_width:
achtergrondlagen[i].x = 0
pygame.draw.rect (scherm, background_colors[i], background_layers[i])
Doorloop elke achtergrondlaag. Trek de overeenkomstige snelheid af van de x-coördinaat van de laag, waardoor deze naar links beweegt. Als een laag de linkerrand van het scherm bereikt, reset u de positie naar rechts, waardoor een doorlopend scroll-effect ontstaat.
Eindelijk, teken elke rechthoekige achtergrondlaag op het scherm gebruiken pygame.draw.rect() en het doorgeven van de bijbehorende kleur en pygame. Recht voorwerp.
Een Parallax-effect toevoegen tijdens het bewegen
Om het parallax-effect te versterken, kun je de platformbeweging aanpassen zodat deze plaatsvindt wanneer de speler beweegt. Dit zorgt voor een sterk gevoel van diepte en dynamische beweging. Maak een nieuw bestand met de naam parallax.py en voeg de code toe met de onderstaande updates:
# Definieer de platformposities en snelheden
rect1 = pygame. Recht(50, schermhoogte - 100, 200, 10)
rect2 = pygame. Recht (screen_width - 250, schermhoogte - 200, 200, 10)perrons = [
{"recht": rect1, "snelheid": 3},
{"recht": rect2, "snelheid": 1}
]# Voeg deze code toe in de spellus
# Beweging van de speler
toetsen = pygame.key.get_pressed()als toetsen[pygame. K_LEFT] En speler_x > 0:
speler_x -= speler_snelheidvoor platform in platforms:
platform["recht"].x -= platform["snelheid"]als toetsen[pygame. K_RIGHT] En player_x < schermbreedte:
player_x += player_speedvoor platform in platforms:
platform["recht"].x += perron["snelheid"]
voor platform in platforms:
pygame.draw.rect (scherm, (0, 255, 0), perron["recht"])
Stel de platforms voor als woordenboeken die zowel het rechthoekige object (rec) als de snelheid bevatten waarmee het platform moet bewegen (snelheid). De platforms worden bijgewerkt in de spellus op basis van de beweging van de speler.
Door deze aanpassing te implementeren, is het scroll-effect alleen actief wanneer de speler actief beweegt, waardoor de illusie van diepte en beweging verder wordt versterkt.
Inclusief extra functies
Je kunt verschillende extra functies implementeren om de scrollende achtergronden in je game te verbeteren. Hier zijn enkele voorbeelden.
Willekeurige achtergrondkleuren
Om variatie aan de achtergrondlagen toe te voegen, kunt u hun kleuren willekeurig maken. Dit doe je door de achtergrondkleuren lijst:
importeren willekeurig
# Voeg deze code toe voor de spellus
achtergrondkleuren = [
(willekeurig.randint(0, 255), willekeurig.randint(0, 255), willekeurig.randint(0, 255)),
(willekeurig.randint(0, 255), willekeurig.randint(0, 255), willekeurig.randint(0, 255)),
(willekeurig.randint(0, 255), willekeurig.randint(0, 255), willekeurig.randint(0, 255))
]
Voeg meer achtergrondlagen toe
U kunt experimenteren met het toevoegen van meer achtergrondlagen om een rijker parallax-effect te creëren. Definieer gewoon aanvullend pyspel. Rect objecten, kleuren en snelheden:
# Voeg deze code toe voor de spellus
achtergrond_lagen = [
pyspel. Recht(0, 0, schermbreedte, schermhoogte),
pyspel. Recht(0, 0, schermbreedte, schermhoogte),
pyspel. Recht(0, 0, schermbreedte, schermhoogte),
pyspel. Recht(0, 0, schermbreedte, schermhoogte)
]achtergrondkleuren = [
(30, 30, 30),
(60, 60, 60),
(90, 90, 90),
(120, 120, 120)
]
achtergrond_snelheden = [1, 2, 3, 4]
Gebruik afbeeldingen voor achtergronden
In plaats van effen kleuren kunt u afbeeldingsbestanden als achtergrond gebruiken. Pygame biedt functies om afbeeldingen te laden en weer te geven.
Laad de afbeeldingsbestanden achtergrond_0.png, achtergrond_1.png, En achtergrond_2.png gebruik makend van pygame.afbeelding.laden(). Gebruik de methode convert() om de prestaties te verbeteren en de afbeeldingen te schalen zodat ze overeenkomen met de schermafmetingen pygame.transform.schaal().
# Voeg deze code toe voor de spellus
achtergrondafbeeldingen = [
pygame.afbeelding.laden("achtergrond_0.png").overzetten(),
pygame.afbeelding.laden("achtergrond_1.png").overzetten(),
pygame.afbeelding.laden("achtergrond_2.png").overzetten()
]achtergrond_snelheden = [1, 2, 3]
voor i in bereik (len (achtergrondafbeeldingen)):
grootte = (screen_width, screen_height)
background_images[i] = pygame.transform.scale (background_images[i], grootte)
Werk ten slotte de lus bij waar u de achtergrondlagen tekent om de afbeeldingen te gebruiken:
# Werk deze code bij in de spellus
voor i in bereik (len (achtergrond_lagen)):
background_layers[i].x -= background_speeds[i]als background_layers[i].x <= -screen_width:
achtergrondlagen[i].x = 0
screen.blit (achtergrondafbeeldingen[i], achtergrondlagen[i])
Hier zijn enkele best practices waarmee u rekening moet houden bij het implementeren van scrollende achtergronden in uw Pygame-projecten.
Prestaties optimaliseren
Scrollende achtergronden omvatten continu renderen en bijwerken. Overweeg om uw code te optimaliseren en onnodige berekeningen te minimaliseren om een soepele gameplay te garanderen.
Experimenteer met laagsnelheden
Het aanpassen van de snelheden van de achtergrondlagen kan verschillende effecten creëren. Speel met verschillende waarden om de juiste balans te vinden en de gewenste visuele impact te bereiken.
Test op verschillende schermformaten
Zorg ervoor dat uw scrollende achtergronden goed werken op verschillende schermresoluties. Overweeg dynamische schaling te implementeren of verschillende achtergrondafbeeldingen te gebruiken voor verschillende beeldverhoudingen.
Gebruik geschikte beeldformaten
Als u besluit afbeeldingen voor uw achtergronden te gebruiken, kiest u het juiste afbeeldingsformaat (bijv. PNG, JPEG) om de bestandsgrootte en afbeeldingskwaliteit in balans te houden. U kunt ook de laadtijden verkorten door uw afbeeldingen te comprimeren en te optimaliseren.
Overweeg geheugengebruik
Als u van plan bent veel afbeeldingen met een hoge resolutie voor uw achtergronden te gebruiken, houd dan rekening met de geheugenvereisten. Grote afbeeldingen kunnen een aanzienlijke hoeveelheid geheugen in beslag nemen, wat mogelijk van invloed is op de prestaties en het reactievermogen van je game.
Door scrollende achtergronden toe te voegen, kunt u verschillende omgevingen creëren, zoals bewegende landschappen, futuristische stadsgezichten of onderwaterwerelden. Het parallax-effect voegt een dynamisch tintje toe, waardoor de gamewereld levend en interactief aanvoelt.
Vergeet niet om te experimenteren, te herhalen en creatieve mogelijkheden te verkennen met scrollende achtergronden om je games leuker en boeiender te maken voor spelers.