Skapa ett Python-spel för Raspberry Pi

När du har installerat Python (accepterar standardinställningarna), ladda ner Pygame för Windows – igen, acceptera standardinställningarna. Om du redan har en föredragen IDE kommer den nästan säkert att stödja Python ”out of the box”; Om inte, skaffa Geany för Windows. För att konfigurera den för att testa och köra Python-skript, starta Geany, gå sedan till Build-menyn och klicka på Set Build-kommandon. Hitta fältet Execute och ersätt det nuvarande innehållet med C:Python27python %f (förutsatt att du installerade Python till standardkatalogen).

Designa ett spel

Vårt första Python-projekt kommer att vara ett enkelt skjutspel som heter Raspberry Pie (ahem). I det här spelet kommer tre olika typer av frukt att falla från toppen av spelområdet, men bara hallonen ska nå botten och gå in i pajen. Spelaren kontrollerar ett rörligt torn och vinner poäng genom att skjuta körsbär och jordgubbar: poäng dras av om ett hallon förstörs av misstag, eller om en av de andra frukterna hamnar i pajen.

Låt oss börja med att samla ihop tillgångarna. De Öppna Clip Art Library är ett bra ställe att hitta gratis clipart; vi kan hämta våra fruktbilder härifrån. Vi kommer att skapa våra egna bilder för tornet och kulorna. Vi skulle kunna samla ihop ljud för vårt spel också, men för närvarande håller vi saker enkelt och tyst.

Låt oss nu fundera på hur vi ska strukturera vårt program. Grundstrukturen för ett arkadspel är densamma oavsett om du planerar att använda Scratch, Python eller något annat verktyg. Vi börjar med att sätta upp exekveringsloopmiljön och skapar de objekt som kommer att användas i spelet. Vi initierar sedan allt – till exempel ställer vi poängen till noll. Sedan finns det en huvudslinga som hanterar spelet. När spelet är slut visas poängen.

Föremål

Objektorienterad programmering (OOP) ligger till grund för de flesta moderna programmeringsspråk, och det är inte så svårt att förstå. Tänk på de synliga föremålen i vårt spel: de enda aspekterna som varierar från en tumlande frukt till en annan är deras position och släkte (det vill säga om det är hallon, jordgubbar eller körsbär). Vi kan därför representera dem alla mycket enkelt genom att skapa en enda fruktklass med egenskaper som indikerar släkte och position. Vi kan sedan skapa frukter som oberoende instanser av klassen (dessa instanser är ”objekten” av OOP), som var och en innehåller information om vilken sorts frukt det är och dess plats.

Skapa ett Python-spel för Raspberry Pi

Förutom egenskaper kan klasser ha metoder – inbyggda åtgärder som vi kan anropa när vi vill. När det gäller frukt är det viktigaste varje föremål gör att falla. Så vi kan bygga in en metod i vår klass som säger ”ta min nuvarande vertikala position och flytta ner den med 3 pixlar”.

Eftersom all kod som relaterar till frukten ligger inom fruktklassen, är buggar lätta att hitta och, när de har åtgärdats, gäller de för alla instanser i hela programmet. Du kan till och med basera en klass på en annan, vilket ger dig en hierarki av underklasser. För nu, låt oss dock hålla oss till en enkel implementering. Kom ihåg att även om klasser skrivs som en del av koden, skapas objekt endast när programmet körs och existerar inte längre än spelets varaktighet.

Skapar koden

På de följande sidorna går vi igenom koden för Raspberry Pie, så att du kan se hur programmet fungerar och skriva med om du vill. Om något verkar oklart bör ditt första stopp vara Python dokumentation för mer information. Vi kommer också att dra mycket på metoderna och egenskaperna som tillhandahålls av Pygame – se dokumentation här.

Du kan även ladda ner kodfilen här om du vill spela spelet själv direkt. Dessutom kan du använda den här koden som utgångspunkt för att lära dig mer genom att modifiera och uppdatera den själv. Kan du lägga till en tabell med höga poäng? Eller få olika typer av frukt att röra sig på olika sätt? När du har bemästrat grunderna för att skriva spel i Python kan du skapa ditt eget originalspel och skicka in det till vår tävling.

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *