Bugün fayans tabanlı oyunuma duvarların uygulanmasına ilişkin bazı notları not etmek için zaman harcadıktan sonra, daha önce hayal ettiğim kadar basit olmayacağını fark ettim. Yaptığım işin şu anki aşaması aslında duvarla ilgili bir kod oluşturmaya yakın olmasa da, bunu yapmak için üç farklı yöntem buldum. Şu anda, fikirlerimden hangisinin en iyi sonucu vereceğinden ve bir şeyi kaçırıp kaçırmadığımdan emin değilim.
Önemli: Bir karakter CAN biçimlerine aldırmaksızın, duvarları olan bir karo üzerinde durun.
Üç değişkenin tümü için ortak olan: tilemap tek boyutlu std :: vector (veya benzeri) tabanlı bir kapta "tutulur". Bunun nedenleri (açıkça) farklı bir sorunun cevaplarında açıklanmıştır.
Döşeme tabanlı oyunlarda konteyner sınıfları.
Duvarlara dönelim.
A) Basit yaklaşım.
Burada süslü bir şey yok. Her karo kabı yalnızca karakterleri değil , karo içindeki kenara tutturulmuş bir veya birkaç Duvar nesnesini tutabilir .
Artıları: Uygulaması kolay, motorda değişecek bir şey yok. Eksileri: İki şey. Bir - sadece kafamın içinde olabilir, ama bazı kombinasyonlar sadece çirkin görünüyor. İkincisi - bu yaklaşım iki bitişik karodan çift duvar yapılmasına izin verir. Bina, oyunun önemli bir parçası olacak ve çift duvarlar, inşaatçıların, duvarların malzemelerini oyun araçlarıyla yükseltmeyi muhtemel kılmalarını ve mevcut duvarı ikiye katlayarak daha fazla dayanıklılık elde etmelerini sağlar. Bu arzu edilmez. Tabii, çift cidarı yasaklayan bir prosedür de dahil edebilirim, ancak bunun için kötü bir his var.
B) Akıllı (?) Yaklaşım.
Oyuncuların tüm haritayı iki kat duvarla doldurmasına izin vermek yerine, onları yeneceğim. Her duvarın, karonun kenarına içeriden tutturulmuş iki yarısı vardır. Yani, tek bir "Duvar ünitesi" yapmak için, iki bitişik döşemede iki Yarım Duvar nesnesi oluşturmam gerekecek.
Artıları: Simetrik !!! Ayrıca, mevcut motor özelliklerinde de önemli bir değişiklik yapılması gerekmez. Eksileri: Daha fazla güçlük, daha fazla nesne ve elbette "kapaklar". Resimde gördüğünüz gibi, bir köşe temelde bir "kapak" nesnesi için ağlayacak. Aslında onunla harikayım, eklemek çok zor değil. Hey, zaten bağlı dört kapaktan yapılmış ince sütunlar için bir planım var. Tatlı. Yine de, olası Görüş Alanı ve Görüş Hattı ile ilgili bazı endişelerim var.
C) Toplam revizyon çeşidi.
Ya da oyun nesneleri için ayrı kaplar olarak sadece sınır ve köşe oluşturabilirim. Aynen böyle.
Artıları: Emin bile değil. Çok basit. Kesinlikle. Eksileri: Bir revizyon gerektirecektir. Kod değil, neyse ki, ama şu anki oyun mekaniği zihniyeti - bu kesin. Yararları çok açık değil. Ayrıca, bu yaklaşma iki öncekinden çok daha fazla kap gerektirmektedir . İndeksleme matematiği de biraz acı olacak.
Yani burada biz var - çini arasında duvar yapmanın üç farklı yolu. Dışarıda herhangi bir alternatif varsa, onları kontrol etmekten mutlu olurum. Görmedim yaklaşımların herhangi birinin yararları / çöküşleri varsa - lütfen belirtin.