1. İlk oyununuzu bir oyun motorunda yazmak

Herhangi bir bilgisayar oyununu uygularken üç aşama vardır:
- Oyun başlatılıyor. Bu, çeşitli hazırlık eylemlerini içerir: oyun alanının boyutunu belirleme ve çizme, oyun nesnelerini oluşturma ve başlangıç konumlarına yerleştirme ve ayrıca oyunun başında gerçekleştirilmesi gereken diğer tüm eylemler.
- Oyun oynamak. Bu, hareket eden oyun nesneleri, oyuncu eylemleri, kazanılan puanların yanı sıra düzenli aralıklarla veya düğme tıklamaları ve tuşlara basıldığında gerçekleştirilmesi gereken diğer eylemleri içerebilir.
- Oyunu bitirmek. Bu, animasyonları durdurmayı, kazan/kaybet mesajını ve oyunun sonunda yapılması gereken diğer eylemleri içerebilir.
Şimdi sırasıyla üç aşamayı da inceleyeceğiz ve CodeGym oyun motorunun bu süreci kolaylaştırmaya nasıl yardımcı olabileceğini göreceğiz.
2. Oyunu başlatma
CodeGym oyun motorunu kullandığınızda, oyun başlatma yalnızca iki adımdan oluşur:
1. Adım: Oyunun ana sınıfını oluşturun
CodeGym oyun motorunu temel alan kendi oyununuzu oluşturmak için bir sınıf oluşturmanız ve Game sınıfını (com.codegym.engine.cell.Game) genişletmeniz gerekir . Bu, sınıfınıza oyun motorunda metot çağırma yeteneği verecek ve motor da sınıfınızın metotlarını çağırabilecektir . Örnek:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
...
}
2. Adım: initialize()
Yöntemi geçersiz kılın
Metodda initialize()
, oyunu başlatmak için gerekli tüm eylemleri gerçekleştirirsiniz: oyun alanını yaratın, tüm oyun nesnelerini yaratın, vb. Bu metodu Game sınıfını miras alan sınıfta bildirmeniz yeterlidir. Örnek:
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
}
}
Yöntem initialize()
, yönteme benzer main()
. Tüm oyun kodunuzun yürütülmeye başladığı giriş noktasıdır.
3. Oyun alanını oluşturmak
Oyun alanını oluşturmak da iki aşamalı bir süreçtir:
Adım 1: Oyun alanını hücrelere ayırın
Oyun motoru, tüm oyun alanını hücrelere ayırır. Minimum boyut 3×3 ve maksimum boyut 100×100'dür.
Oyun alanının boyutu oluşturulduktan sonra sabittir. Yatay ve dikey boyutların aynı olması gerekmez. Örneğin, 7 genişlik ve 9 yükseklik:
Lütfen hücre numaralandırmasının sol üst köşeden başladığını unutmayın.
Oyun alanının boyutunu ayarlamak için yöntemi kullanın void setScreenSize(int width, int height)
. Oyun alanının boyutunu ayarlar. width
Parametreleri, yatay ( ) ve dikey ( ) boyutlardaki hücre sayısıdır height
. Oyun başladığında genellikle bir kez çağrılır. Örnek:
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);
...
}
}
Bir oyun yazarken, oyun alanının mevcut genişliğini ve yüksekliğini almanız gerekebilir. Karşılık gelen yöntemler int getScreenWidth()
ve int getScreenHeight()
.
2. Adım: Izgarayı açın/kapatın (isteğe bağlı)
Oyun alanınızın hücrelerini ayıran siyah bir ızgaradan hoşlanmıyorsanız, kapatabilirsiniz.
Yöntem void showGrid(boolean isShow)
, hücreleri ayıran ızgarayı etkinleştirir/devre dışı bırakır. Izgara varsayılan olarak görüntülenir. Kapatmak için bu yöntemi çağırın ve false
argüman olarak iletin:
showGrid(false);
Sonuç:
Izgarayı tekrar açmak için yöntemi şu şekilde çağırın:
showGrid(true);
Sonuç:
4. İlkel program
CodeGym oyun motorunu kullanan çok ilkel bir oyun yazalım. 3 şey yapacak:
- Oyun alanını 9 hücreye bölecek: 3×3
- Izgarayı devre dışı bırakır (hücreler arasındaki çizgiler)
- Merkez hücre maviye boyanacak ve
X
içine harf yazılacaktır.
Son kod şöyle görünü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);
}
}
Bu örnekte oyun alanı 3x3 olarak ayarlanmış, ızgara kapatılmış ve orta hücreye mavi arka planlı hücre yüksekliğinin yarısında turuncu bir harf konulmuştur . Bu, oyuncunun oyun başladığında gördüğü ilk şey olacaktır.X
GO TO FULL VERSION