Bileşenlerin etrafında tasarlanmış bir oyunda çarpışmayı düzgün bir şekilde ele alma yollarının etrafına sarılmaya çalışıyorum.
Birçok örnek PhysicsComponent
, varlığın bileşen listesine eklenen bir çeşit var ama gerçek uygulama beni karıştırıyor.
Bunun çalışması PhysicsComponent
için etrafındaki dünyaya erişmesi gerekir. Bu benim için sezgisel bir anlam ifade etmiyor. Bir bileşen sadece konteynerinin (varlık) değil, aynı zamanda konteynerinin konteynerinin (dünya) farkında olmamalı mıdır?
Bana göre, seviye veya sahne bu varlıkların bir listesini tutmalı ve her oyun güncellemesi, hangi çarpışmayı belirlemek için varlıklar arasında dolaşmalıdır.
Benim sorum öncelikle, bunun iyi bir tasarım olup olmadığı ve ikincisi, hangi varlıkların çarpışabileceğini belirleme. Katı varlıkların boş bir IRigidBody arabirimi uygulayabileceğini düşünüyorum, böylece listedeki hangi varlıkların çarpışmayı desteklediğini belirleyebilir. Ancak bu bileşen tasarımını bozuyor mu?
Bunun yerine boş bir RigidBody bileşeni içermeli mi? Bu aslında daha iyi olabilir, çünkü her zaman boş olmayabilir ve bu yaklaşım daha fazla geleceğe yöneliktir. Bununla ilgili tek sorun karmaşıklıktır. Sahnenin, bu RigidBody bileşenine sahip olup olmadığını belirlemek için sadece her bir varlığın değil, aynı zamanda her bir varlığın bileşenlerini de dolaşması gerekir.
Üçüncüsü, çarpıştıklarında her iki taraf da bir şekilde bilgilendirilmeli ve bunu nasıl başaracağımdan emin değilim.
Her iki kurumun bir HealthComponent içerdiğini ve çarpıştıklarında her ikisinin de sağlıklarını keyfi bir değer 5 azaltacağını varsayalım.
Peki o zaman sahne çok mu sorumlu? Sahnelerin erişememesi gereken birçok şeyden sahne sorumlu olduğunda, bu muhtemelen elden çıkıp hantal kaldığını görebiliyordum.
Düzenleme: Soru daha fazla ayrıntıyla güncellendi.