Sorum şu:
Oyun durumu nesnelerini bir yığın halinde tutmak zorunda kalmadan varlık sistemimdeki oyun durumlarını nasıl ele alabilirim?
Dolayısıyla, varlık sistemimin tasarımı, bir varlığın örneğin girdi olaylarına kaydolması gerektiğinde, girdi bileşeninin girdi sistemini çağırdığı ve "bu varlığı bu girdi için kaydet" olduğu anlamına gelir. Her şey yolunda ve iyi, ancak buna oyun durumları kavramını eklerseniz (bir duraklama ekranı söyleyin), bir varlığın mevcut durumda olup olmadığını ve girdiyi alması gerekiyorsa bir sorun haline gelir.
Giriş bileşenini / sistemini, "bu oyun durumlarında bu giriş için bu varlığı kaydet" diyerek artırmayı başardım, ancak bu, her varlığın hangi eyaletlerde kullanılacağını bilmesini gerektirir ve bu açık olmayabilir. Ayrıca, kayıtlı durum başına (ve geri arama kullanan diğer sistemlerde) oyun durumlarının bir listesini tutmak çok verimli gelmez.
Sahip olduğum başka bir fikir, oyun durumunu temsil eden bir varlık olacağından, devre dışı olarak işaretlendiğinden, giriş olayı oluştururken varlığın devre dışı bırakılmış bir oyun devlet varlığının torunu olmadığını kontrol etmektir. Her geri arama için ebeveyni çalışmak pahalı görünüyor.
Başka bir fikir, tüm sistemlerin verilerini mevcut duruma karşı anahtarlanmış olarak saklamasıdır, böylece girdiyi oluştururken hedef varlık aday bile olmaz. Ancak bu, farklı eyaletlerdeki varlıklar arasındaki iletişime izin verme yeteneğini gerçekten incitiyor (duraklatma ekranları için çok fazla sorun değil, Oblivion / Skyrim'de kilit seçmeyi düşünün).
Sahip olduğum diğer tek fikir, tüm bileşenlerin bir durum değişikliği olaylarını işlemesini ve kaydettikleri herhangi bir şeyi devre dışı bırakmak için ilgili sistemleriyle iletişim kurmasını ve bu duruma geri döndüğünde yeniden etkinleştirmelerini sağlamaktır.
İkincisi (bir nesneyi devre dışı olarak işaretleyin) ve ileri (her bir bileşenin devlet değişiklikleriyle ilgilenmesi) fikirlerimin en iyisi gibi görünüyor, ancak hiçbiri bana özellikle büyük olarak atlamıyor.
Bunun nasıl yapılacağı konusunda başka fikirleri olan var mı?
edit Bu soruya özel olarak girdi hakkında konuşurken, çarpışmalar, zamanlayıcı olayları gibi varlıklara mesaj / olay gönderebilen herhangi bir sistem anlamına gelebilir.