XNA (gerçekten önemli değil, herhangi bir platform olabilir) içinde bir envanter sistemi uygulamaya çalışırken bir sorunla karşılaşıyorum ama şimdiye kadar. İşte kafamı sarmaya çalıştığım sorun:
Dünyadan bir eşyayı nasıl alabilirim (bir canavarı öldürdüğün zırhı düşürdüğünü düşün) ve oyuncumun envanterine nasıl alabilirim?
Bir envanter sadece bir öğe listesiyse, teknik olarak, bir sınıftan birden fazla şey yapmadan Çelik Kılıç'ı dünyadan oyuncumun envanterine nasıl alabilirim?
Şu anda benzersiz bir onaltılık değer, kaç öğe var (oklar gibi istiflenebilir) için bir sayı ve envanter içinde işleme için bir doku ve diğer bazı önemsiz özellikleri (ad, açıklama, vb) içeren bir öğe yapısı var .
Çarpışma tespiti ile birlikte bir dünya pozisyonuna ev sahipliği yapmak için mevcut eşya sınıfımı değiştirmek zorunda kalsaydım kötü tasarım olurdu (öğenin dünyaya düşmesini istemiyorum).
İlginiz için teşekkürler!
Inventory
bir alır WorldItem
ve bunu ekler bazı yöntem olmalıdır InventoryItem
. Böylece öğelerin istiflenmesi gereken durumları da ele alabilir (örn. Oklar).
WorldItem
sizin için ayrı olan bir tane olamaz mıInventoryItem
? (Belki de alındığında oyuncunun envanterine yerleştirilmişWorldItem
birInventoryItem
şablonu vardır).