1. Skriva ditt första spel på en spelmotor
När du implementerar ett datorspel finns det tre steg:
- Initierar spelet. Detta inkluderar olika förberedande åtgärder: ställa in storleken på spelplanen och rita den, skapa och ställa in spelobjekt i deras utgångsposition, såväl som alla andra åtgärder som behöver utföras i början av spelet.
- Spelar spelet. Detta kan inkludera rörliga spelobjekt, spelaråtgärder, intjänade poäng, såväl som alla andra åtgärder som måste utföras med jämna mellanrum eller som svar på knappklick och knapptryckningar.
- Avslutar spelet. Detta kan inkludera att stoppa animationer, ett vinst/förlust-meddelande och alla andra åtgärder som måste utföras i slutet av spelet.
Vi ska nu gå igenom alla tre stegen i ordning och se hur spelmotorn CodeGym kan hjälpa till att göra denna process enklare.
2. Initiera spelet
När du använder spelmotorn CodeGym består spelinitieringen endast av två steg:
Steg 1: Skapa spelets huvudklass
För att skapa ditt eget spel baserat på CodeGym-spelmotorn måste du skapa en klass och få den att utöka spelklassen ( com.codegym.engine.cell.Game). Detta kommer att ge din klass möjlighet att anropa metoder på spelmotorn, och motorn kommer att kunna anropa metoder i din klass . Exempel:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
...
}
Steg 2: Åsidosätt initialize()
metoden
I initialize()
metoden utför du alla nödvändiga åtgärder för att starta spelet: skapa spelplanen, skapa alla spelobjekt, etc. Du behöver bara deklarera den här metoden i klassen som ärver Game-klassen. Exempel:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
@Override
public void initialize() {
// Here we perform all the actions to initialize the game and its objects
}
}
Metoden initialize()
är analog med main()
metoden. Det är ingångspunkten från vilken all din spelkod börjar exekveras.
3. Skapa spelplanen
Att skapa spelplanen är också en process i två steg:
Steg 1: Dela upp spelplanen i celler
Spelmotorn delar upp hela spelplanen i celler. Minsta storlek är 3×3, och maxstorleken är 100×100.
Storleken på spelplanen är konstant när den väl skapats. De horisontella och vertikala måtten behöver inte vara samma. Till exempel, en bredd på 7 och en höjd på 9:
Observera att cellnumrering börjar från det övre vänstra hörnet.
void setScreenSize(int width, int height)
Använd metoden för att ställa in storleken på spelplanen. Den anger storleken på spelplanen. Dess parametrar är antalet celler i de horisontella ( width
) och vertikala ( height
) dimensionerna. Det brukar kallas en gång när spelet startar. Exempel:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
@Override public void initialize()
{
// Set the field size to 7x9 cells
setScreenSize(7, 9);
...
}
}
När du skriver ett spel kan du behöva få aktuell bredd och höjd på spelplanen. Motsvarande metoder är int getScreenWidth()
och int getScreenHeight()
.
Steg 2: Slå på/av nätet (valfritt)
Om du inte gillar att ha ett svart rutnät som separerar cellerna på din spelplan, kan du stänga av det.
Metoden void showGrid(boolean isShow)
aktiverar/inaktiverar rutnätet som separerar cellerna. Rutnätet visas som standard. För att stänga av den, anrop den här metoden och skicka in false
som argument:
showGrid(false);
Resultat:
För att slå på nätet igen, anrop metoden så här:
showGrid(true);
Resultat:
4. Primitivt program
Låt oss skriva ett väldigt primitivt spel som använder spelmotorn CodeGym. Det kommer att göra 3 saker:
- Det kommer att dela upp spelplanen i 9 celler: 3×3
- Det kommer att inaktivera rutnätet (linjerna mellan cellerna)
- Den centrala cellen kommer att målas blå och bokstaven
X
kommer att skrivas i den.
Den slutliga koden ser ut så här:
public class MySuperGame extends Game
{
@Override
public void initialize()
{
// Create a 3x3 playing field
setScreenSize(3, 3);
// Disable displaying the grid
showGrid(false);
// Change the background of the central cell to blue and display "X" in it
setCellValueEx(1, 1, Color.BLUE, "Х", Color.ORANGE, 50);
}
}
I det här exemplet är spelplanen inställd på 3x3, rutnätet är avstängt och en orange bokstav X
på halva cellhöjden sätts i mittcellen med blå bakgrund. Detta kommer att vara det första spelaren ser när spelet startar.
GO TO FULL VERSION