1. Az első játék megírása játékmotoron

Bármely számítógépes játék megvalósítása három szakaszból áll:
- A játék inicializálása. Ez magában foglalja a különféle előkészítő műveleteket: a játéktér méretének beállítása és megrajzolása, a játékobjektumok létrehozása és beállítása a kezdeti helyzetükben, valamint minden egyéb művelet, amelyet a játék elején végre kell hajtani.
- A játékot játszani. Ez magában foglalhatja a játéktárgyak mozgatását, a játékos akcióit, a megszerzett pontok összeszámlálását, valamint bármely más olyan műveletet, amelyet rendszeres időközönként vagy gombkattintásra és billentyűlenyomásra kell végrehajtani.
- A játék befejezése. Ez magában foglalhatja az animációk leállítását, a győzelem/veszteség üzenetét, és minden egyéb műveletet, amelyet a játék végén végre kell hajtani.
Most sorban végigjárjuk mindhárom szakaszt, és meglátjuk, hogy a CodeGym játékmotor hogyan segítheti ezt a folyamatot.
2. A játék inicializálása
Ha a CodeGym játékmotort használja, a játék inicializálása mindössze két lépésből áll:
1. lépés: Hozd létre a játék fő osztályát
A CodeGym játékmotoron alapuló saját játék létrehozásához létre kell hoznia egy osztályt, és ki kell terjesztenie a Game osztályt (com.codegym.engine.cell.Game). Ezáltal az osztályod képes lesz metódusokat hívni a játékmotoron , a motor pedig az osztályod metódusait . Példa:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
...
}
2. lépés: A initialize()
módszer felülbírálása
A initialize()
metódusban végrehajtja a játék elindításához szükséges összes műveletet: létrehozza a játékteret, létrehozza az összes játékobjektumot stb. Csak deklarálnia kell ezt a metódust abban az osztályban, amely a Game osztályt örökli. Példa:
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
}
}
A initialize()
módszer analóg a main()
módszerrel. Ez az a belépési pont, ahonnan az összes játékkód végrehajtása megkezdődik.
3. A játéktér kialakítása
A játéktér kialakítása szintén két lépésből áll:
1. lépés: Ossza fel a játékteret cellákra
A játékmotor a teljes játékteret cellákra osztja. A legkisebb méret 3×3, a maximális pedig 100×100.
A játéktér mérete a létrehozást követően állandó. A vízszintes és függőleges méreteknek nem kell azonosnak lenniük. Például 7 szélesség és 9 magasság:
Felhívjuk figyelmét, hogy a cellaszámozás a bal felső sarokból kezdődik.
A játéktér méretének beállításához használja a void setScreenSize(int width, int height)
módszert. Beállítja a játéktér méretét. Paraméterei a cellák száma vízszintes ( width
) és függőleges ( height
) méretben. Általában egyszer hívják, amikor a játék elindul. Példa:
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);
...
}
}
A játék írásakor előfordulhat, hogy meg kell találnia a játéktér aktuális szélességét és magasságát. A megfelelő módszerek a int getScreenWidth()
és int getScreenHeight()
.
2. lépés: Kapcsolja be/ki a rácsot (opcionális)
Ha nem szereti, ha fekete rács választja el a játékmező celláit, akkor kikapcsolhatja.
A void showGrid(boolean isShow)
módszer engedélyezi/letiltja a cellákat elválasztó rácsot. Alapértelmezés szerint a rács jelenik meg. A kikapcsolásához hívja meg ezt a metódust, és adja meg false
argumentumként:
showGrid(false);
Eredmény:
A rács visszakapcsolásához hívja meg a következő módszert:
showGrid(true);
Eredmény:
4. Primitív program
Írjunk egy nagyon primitív játékot, ami a CodeGym játékmotort használja. 3 dolgot fog tenni:
- A játékteret 9 cellára osztja: 3 × 3
- Letiltja a rácsot (a cellák közötti vonalakat)
- A központi cellát kékre festjük, és
X
beleírjuk a betűt.
A végső kód így néz ki:
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);
}
}
Ebben a példában a játékmező 3x3-ra van állítva, a rács ki van kapcsolva, és a cella magasságának felében egy narancssárga betű kerül a középső cellába kék háttérrel. Ez lesz az első dolog, amit a játékos lát a játék kezdetekor.X
GO TO FULL VERSION