September 17, 2009

Çok güzel... :) Harita konusunu nasıl hallettin?

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 18, 2009

Harita yapmadım :) Bunun yerine duvarlar için dikdörtgenler oluşturdum. Bu dikdörtgenler, dikdörtgenin X ve Y koordinatı ile dikdörtgenin genişliğini ve yüksekliğini tutan yapılar:

duvarlar[0] = new Rectangle (xkoordinati, ykoordinati, genislik, yukseklik);

gibi .. Daha sonra pacman aslında dairesel bir cisim ama karşılaştırmak için bir tane de pacmanin etrafında gecici bir dikdörtgensel cisim oluşturdum ve bu mantıkla çarpışma algılamasını yaptım.

Tabi bu biraz yorucu oldu :) Çünkü bu dikdörtgenlerin koordinatlarını teker teker oluşturmak zorunda kaldım.

Aslında bu tür (maze) oyunlarda bir harita sistemi ve bu haritaya dayanan bir çarpışma algılaması yapmak daha mantıklı sanırım. Ama mantığı tam anlamadığım için ve bu yöntem biraz zor geldiği için şimdilik üstteki yöntemle yaptım. Daha sonra bu konuyu da öğrenek pacman'i harita tabanlı hareket edecek, çarpışma algılamasını da bu sistem üzerinde kuracak şekilde değiştirmeyi düşünüyorum.

Bir de şunu öğrendim. Aslında C#'da çok boyutlu dizi oluşturmak çok kolaymış. Örneğin iki boyutlu bir diziyi:

int[,] benimDizim = new int[4,2];

ya da üç boyutlu bir diziyi

int[,,] benimDizim = new int[4,2,3];

şeklinde oluşturabiliyormuşuz.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 18, 2009

Güzel bir fikir :) ! Böylelikle diğer bölümler için uğraşmaktan kurtulurum.

Oyunu harita kullanacak şekilde yapmadım çünkü Pacman'in hareket şeklini değiştirmem gerekiyordu. Şimdiki haliyle direkt bir hareketEt() diye bir işlev var. Eğer ızgara tabanlı hareket yapsaydım ilkönce hareketEtmeyeCalis () ve hareketEt () diye iki tane işlev yazmam gerekecekti. Kısacası pacman'in hareket sistemini tamamen değiştirmem gerekecekti.

Ama dediğiniz şekilde olunca hareket şeklini de değiştirmeden harita kullanmak mümkün oluyor. Denedikten sonra buraya tekrar yazarım..

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 18, 2009

Dikdörtgenler işe yaradıysa kalabilirler de, bence onları da haritadan oluşturabilirsin. Haritanın içeriği dikdörtgenlere dönüştürülebilir; çünkü her bir noktası bir bloğu temsil edebilir.

Sonra iç içe iki for döngüsü ile duvarlar'ı oluşturabilirsin.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 19, 2009

Pacman Çarpışma Algılaması (http://www.youtube.com/watch?v=Shpgi01Q_Pg)

Burada Pacman'in noktaları ve diğer cisimleri yeme davranışını yaptım. Pacman'in etrafında gezen o kırmızı dikdörtgen çarpışma kutucuğu. İlk yapmaya çalıştığımda aynı anda birden fazla nokta yiyebiliyordu. Bunu çarpışma kutucuğunu yarıya indirerek ve konumunu tam merkezde olacak şekilde ayarlayarak düzelttim. Pacman sağa sola hareket etmek istediğinde o kutucuk da hareket yönüne göre bir tarafa kayıyor.

Üst tarafta bulunan şey de hayalet protipi :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 19, 2009

Evet bunu görsel olarak çarpışma kutucuğunu çizdirdiğimde buldum. Örneğin pacman şöyle bir durumdayken çarpışma kutucuğu tam olduğu zaman (dikkat ederseniz biraz yukarda) aynı anda sola gitmeye çalıştığı zaman noktaların ikisini de götürüyor. Çünkü o noktalar da aslında çarpışma kutucuğu boyunda transparan bir resim.

http://img246.imageshack.us/img246/6450/ekranw.png

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 19, 2009

Güzel fikir... :) Kutucuğun tam yarı olup olmamasına oynadıkça karar veriyorsundur. Herhalde büyüklüğü oyunun doğallık hissini etkiliyordur.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

1 2
Next ›   Last »