Benim Kaydırmalı Bulmaca Türü Oyunumu Geliştirme Sürecim
Izgara oluşturma ve karolar ile doldurma
Izgarayı iki boyutlu bir dizi olarak tanımladım, ızgara boyutunu hesaplayıp dünya pozisyonu olarak 0, 0, 0 dan x ve z eksenindeki uzaklığının yarısını bulup karoları bu pozisyonlara yerleştirerek ızgarayı merkezde görselleştirdim. Aynı zamanda rastgele bir pozisyonu boş karo yeri olarak seçip orayı geçtim.
Bu karolar oluşturulurken ızgara üstünde indis olarak pozisyonlarını hatırlayacak şekilde ilk pozisyonlarını sakladım. Hedefim sonra her hareket ettiklerinde pozisyonlarını değiştirip orijinal pozisyonlarıyla karşılaştırarak bulmacanın tamamlanmasını takip etmekti.
Karo hareket ettirme ve ızgara karıştırma
Karoları hareket ettirirken her karoda olan etkileşimde karonun yanında boş pozisyon var mı ve şuan hareket halinde mi kontrolleri ile güvenceye aldım. Karo hareket edecekse basitçe boş pozisyonun yerine geçiyor ve boş pozisyonda hareket eden karonun pozisyonları ile kendini güncelliyor.
Sonradan karoları animasyonlu hareket ettirdim. Bu sırada hareket halinde etkileşimi engellemek için bir kontrol eklemem gerekti.
Oyun başladıktan sonra ve ızgara oluşturulduktan sonra içindeki karoları karıştırdım. Bunu zaten elimde olan karo hareket ettirme metodunu rastgele yönlerde simüle ederek bulmacanın çözülebilir olmasından emin oldum.
Zafer kontrolü ve hareket sayacı
Her hareketten sonra tüm karolar anlık pozisyonlarını orijinal pozisyonlarıyla karşılaştırıyorum. Bu sayede bulmaca tamamlandığında anlayıp zafer koşulunu çalıştırıyorum.
Aynı zamanda kanvasda hareketlerini sayan bir hareket sayacı ekledim. Bu sayacın karıştırma aşamasındaki hareketlerle artmamasından emin oldum.