Son 3-4 yıldır hobi projeleri üzerinde çalışıyorum. Sadece basit 2d ve 3d oyunlar. Ama son zamanlarda daha büyük bir projeye başladım. Soo, son birkaç ayda tüm oyun nesnelerimin temeli olabilecek bir oyun nesnesi sınıfı tasarlamaya çalışıyorum. Bu yüzden, birçok deneme ve deneme testinden sonra Google’a döndüm, bu da beni hızlı bir şekilde bazı GDC PDF’lerine ve PowerPuan’lara yönlendirdi. Ve şimdi bileşen tabanlı oyun nesnelerini kavramaya çalışıyorum.
Motorun bir oyun nesnesi yarattığını ve sonra sağlık, fizik, ağ kurma ve ne yaparsanız yapın gibi şeyleri ele alan farklı bileşenler eklediğini anlıyorum. Fakat anlamadığım şey, X bileşeninin Y'nin nesnenin durumunu değiştirip değiştirmediğini nasıl bildiğidir. Mesela, PhysicsComponent, oyuncunun hayatta olup olmadığını nasıl bilebilir, çünkü sağlık, HealthComponent tarafından kontrol edilir. Peki HealthComponent "oyuncu-ölmüş-animasyon" u nasıl oynuyor?
Bunun gibi bir şey olduğu izlenimindeydim (Sağlık Komponenti'nde):
if(Health < 0) {
AnimationComponent.PlayAnimation("played-died-animation")
}
Ama sonra yine, HealthComponent'in eklediği oyun nesnesinin bir AnimationComponent'in ekli olduğunu nasıl biliyor? Burada gördüğüm tek çözüm
Bir AnimationComponent'in takılı olup olmadığını kontrol edin (Bileşen kodunun içinde veya motor tarafında)
Bileşenlerin başka bileşenlere gereksinimi var, ancak bu bileşen tasarımının tamamı ile mücadele ediyor gibi görünüyor.
Tüm bileşen tasarımı fikri ile tekrar mücadele gibi görünen HealthWithAnimationComponent, HealthNoAnimationComponent ve soo gibi yazın.