Skapa ett spel med Pygame – 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å. 

I föregående avsnitt visade vi hur man kan skapa en game-loop för att skapa basen för ett spel i pygame. Vi ska nu fortsätta genom att kunna styra spelaren med piltangenterna. Vi utgår från game-loopen vi skapade i föregående avsnitt:

Hur använder man tangenttryckningar i PyGame?

Vi har redan visat hur pygame har inbyggda funktioner för att läsa av event (pygame.event.get() ). Denna funktion kan även känna av tangenttryckningar. Vi börjar med att skapa en array som hanterar de fyra piltangenterna:

Där indexen är är ordnade enligt [upp, vänster, ner, höger]. False innebär att tangenten inte är nedtryckt och True betyder att tangenten är nedtryckt. Exempelvis betyder:

att vänster piltangent är nedtryckt och alla andra är släppta.

Vi kan nu använda oss av pygames event-funktion för att avgöra om en tangent är nedtryckt eller släppt

Vi kan använda dessa två kommandon och uppdatera arrayen varje gång rätt tangent trycks ner:

Det vill säga, när en tangent blir nedtryckt, sätter vi True på den plats i arrayen som tangenten tillhör.

På samma sätt avgör vi om en tangent släpps och sätter dess plats till False:

Vi kan nu uppdatera positionen på spelaren genom att kolla om tangenknappen är nedtryckt eller inte. Först hanterar vi y-positionen:

Sedan x-positionen på motsvarande sätt:

Kör vi spelet nu, kommer vi kunna styra spelaren med piltangenterna:

Testa själv! Här är all kod!

Bakåt    |    Framåt