27 Ocak 2010 Çarşamba

İlk denemler



Oyun programlamaya başlamaya karar verdikten sonra ilk proje için eski atari oyunlarında 90 tank oyununu belirlemiştik .İlk denemelerin görünümü yandaki resimde göründüğü gibi oldu .
Tank , mermi resimlerini gerçek oyunun ekran görüntüsünü paintte keserek ekledim ,umarım bir sorun çıkarmazlar :)) .Kaç zamandan beri oyun oynamayan ben ,oyunun kurallarını ve algoritmalarını iyi gözlemleyebilmek için akşamları düzenli olarak aynı oyunu oynamaya başladım . Oyun oynamak için ilk defa bir nedenim oldu :) .
Şimdi oyunun teknik kısımlarından bahsedelim .
Oyunu c sharp kullanarak kodlamaya karar vermiştik .Şimdilik basit olarak 3 classım
var harita classı ,mermi ve tank classı .Classlar şu anda çok yetersiz özellikler bulundurmasına rağmen işlerin nasıl bölünebileceğine bir temel teşkil ediyor .

Sırasıyla classların ne işe yaradığından görelim .
Haritamız grid tabanlı idi yani haritamızı belli büyüklükteki karelere bölüyoruz .
Classımız bu karelerin tutulduğu matrisi tutuyor .Mesela örnek olarak 50x50 matrisimiz olsun
bu matris te -1 degerleri boşlukları 1 degerler i duvarları göstersin .Üsteki resim de görüldüğü gibi belli bir alan duvar bloku döşenmiş .Bu bloku oluşturmak için belli bir indisten başlayarak çift for döngüsüyle matrisimize 1 degerlerini yerleştirmemiz yeterli.
harita classı işimizi kolaylaştıracak bir çok özelliği eklememiz gerekiyor .Harita grafiklerinin sağlanması gibi .

İkinci classımız tank classı genel olarak engellerin tespit edilmesi , hareketleri sağlayacak tuşların handle edilmesi ve grafiklerin sağlanmasını kolaylaştırıyor.
Klavye den yukarı oka bastığımızda tankın ilerlemesi gerekiyor her bir ilerleme hareketi için öncelikle tankın önünde bir engel olup olmadığı önceden test edilmesi gerekiyor .Bu işlemi harita classımızdaki matrisimizden bakıyoruz .Tankımızın yönü clasımızda tutuluyor ve tankın görüntüsünü döndüren metodumuz tankın yönüne göre resim döndürüyor .

Son classımız mermi classı tank clasımıza benziyor aslında . Atıldığı tanktan yön ve başlangıç koordinatlarını alan bu class bağımsız olarak engellere çarpıp çarpmadığını kontrollerini gerçekleştiriyor.

Oyunun projesini grubunuza yükledim .İsteyen indirip deneyebilir.
VS 2008 kullanarak denemenizi tavsiye ediyorum .

2 yorum:

  1. Oyunda vurmada sıkıntı var msn den yazmıştı.Ayrıca tank ve mermi sınıflarını biraz geliştirmek gerekiyor.Düşman tankın verilerini de tutabilecek şekilde geliştirmek lazım.

    YanıtlaSil
  2. İhtiyaçlara göre geliştirecez artık...

    YanıtlaSil