Hur blandar man två spelprogrammeringap på koda.nu

Logik Hur skapar man ett spel i Python? Det finns många sätt att programmera spel i Python. När man programmerar ett spel är det ofta flera klasser och objekt som samverkar med varandra för att allt ska fungera som det ska, så kallad objektorienterad programmering.

Ett bibliotek som innehåller många färdiga funktioner för att sköta datagrafiken är pygame. Vi kommer därför att använda oss av pygame för att på så sätt förenkla skapandet av spelet. Vad är pygame? Pygame är ett bibliotek som innehåller flera funktioner som vi kommer använda oss av när vi programmerar vårt spel.

Bland annat har pygame funktioner för att hantera tangenttryck som gör att vi kan maöverera spelaren. Pygame har även flera funktioner för att hantera grafiken på spelet, så som inladdning och positionering av bilder. Exempel: Programmera ett spel i Python Vårt spel går ut på att man manövrerar en spelare med piltangenterna där målet är att ta sig förbi så många fallande väggar som möjligt.

Hålet på väggarna kommer slumpmässigt och väggen faller snabbare och snabbare neråt. Om man rör väggen får man game over. Det är även en räknare som håller koll på antal väggar man har klarat av att passera. Pygame kommer hjälpa oss med tangenttryckningarna och all grafik.

Det kommer se ut ungefär såhär: Ett spel behöver vara aktivt hela tiden. Spelet ska dels rita ut all grafik, dels lyssna till tangentryckningar och hantera all logik beroende på vad som händer i spelet. Detta hanterar vi med en game-loop.

Del 1: Skapa en Game-loop till Pygame Vi ska nu skapa skelettet till spelet, en så kallad game-loop som hanterar all logik och hantering av spelplanen. Game-loopen ska även hantera input av tangenttryckningar. Mycket av detta kommer gratis i biblioteket pygame.

Man kan säga att vi har aktiverat de moduler som vi vill använda oss av. För att underlätta, delar vi in spelplanen i ett rutnät där varje ruta är 64 x 64 pixlar stor. Vi bestämmer att bredden ska vara 10 rutor, och höjgden 8 rutor.

Vi skapar helt enkelt två variabler som bestämmer var på som spelaren ska ritas ut. Bilden är i detta fall 64 x 64 pixlar stor. Det innebär alltså att bilden kommer vara exakt lika stor som en ruta i spelplanen. Vi kan nu skapa en evighetsloop som upprepas för alltid.

Den kommer alltså pågå för alltid. I denna loop kan vi nu sköta all logik och rita ut spelplanen. Det är här vi senare kommer känna av tangenttryckningar. Just nu kollar vi enbart om spelplanen har stängts ner pygame. I så fall avbryter vi programmet exit 0 och spelet while-loopen bryts och spelet slutförs.

I så fall, stäng av programmet if event. QUIT: if it is quit the game pygame. Stänger man av programmet så avbryts while-loopen och programmet stängs av. Del 2: Hantera tangenttryckningar Pygame kan läsa av events från användaren, exempelvis tangenttryckningar.

Vi kan alltså låta saker hända, beroende vilken knapp på tangentbordet man trycker på. Vi ska nu fortsätta genom att kunna styra spelaren med piltangenterna. Hur använder man tangenttryckningar i PyGame? Vi har redan visat hur pygame har inbyggda funktioner för att läsa av event pygame.

Denna funktion kan även känna av tangenttryckningar. False innebär att tangenten inte är nedtryckt och True betyder att tangenten är nedtryckt. Vi kan nu använda oss av pygames event-funktion för att avgöra om en tangent är nedtryckt eller släppt if event.

KEYUP: Avgör om en tangent har släppts Vi kan använda dessa två kommandon och uppdatera arrayen varje gång rätt tangent trycks ner: if event. På samma sätt avgör vi om en tangent släpps och sätter dess plats till False: if event. KEYUP: if event.

Spelaren åker höger Kör vi spelet nu, kommer vi kunna styra spelaren med piltangenterna: Testa själv! Här är all kod! Spelaren åker höger Del 3: Logik till spelet Vi kan även införa logik i spelet. Beroende på vad som händer i spelet, ska något nytt hända!

Vi ska programmera en fallande vägg med ett hål i. Målet är att styra spelaren igenom hålet. Om man nuddar väggen, får man game-over. Vi ska även lägga till en räknare, som håller reda på hur många hål vi passerat. Vi utgår från koden som vi skapat än så länge: Visa kod 1 - Import library import pygame from pygame.

Spelaren åker höger Skapa en fallande vägg Vi laddar in en bild som är 64 x 64 pixlar stor. Detta är en ruta i spelet. Eftersom spelet är 10 x 64 pixlar bred, vet vi att det får plats 10 väggblock på spelplanen. Därför skapar vi 8 objekt av wall, vilket innebär att hålet blir två rutor bred.

Det kommer bli ett hål som är två rutor stort. När väggen har fallit hela vägen till botten av spelplanen, börjar den om från toppen igen. Sätt game-over om spelaren krockar med väggen Om spelaren åker in i väggen får vi game-over.

Om man trycker på Enter i meny-läget, startas ett nytt spel. QUIT: Om man kryssar ner spelplanen pygame. Spelet är nu klart! All kod hittar du nedan! Testa själv! Det finns oändliga möjligheter och varianter på hur man lär sig att programmera och att programmera ett enkelt spel är ett roligt sätt där man snabbt lär sig.

Det kan uppfattas som mycket kod och möjligtvis ganska svårt att förstå all logik i spelet. Men mitt tips till dig är att påbörja ett eget spel och bygg upp din egna logik efter hand. Då kommer du steg för steg lära dig, och lösa de problem som uppstår allt eftersom du programmerar.