मैं पिछले 3-4 वर्षों में कुछ शौक परियोजनाओं पर काम कर रहा हूं। बस सरल 2d और 3 डी खेल। लेकिन हाल ही में मैंने एक बड़ा प्रोजेक्ट शुरू किया है। पिछले कुछ महीनों में मैं एक गेम ऑब्जेक्ट क्लास डिज़ाइन करने की कोशिश कर रहा हूं जो मेरे सभी गेम ऑब्जेक्ट्स का आधार हो सकता है। इसलिए बहुत कोशिश और मरने के बाद मैंने Google का रुख किया, जिसने मुझे जल्दी से कुछ जीडीसी पीडीएफ और पॉवर पॉइंट्स की ओर इशारा किया। और अब मैं घटक-आधारित गेम ऑब्जेक्ट्स की समझ प्राप्त करने की कोशिश कर रहा हूं।
मैं समझता हूं कि इंजन एक गेम ऑब्जेक्ट बनाता है और फिर विभिन्न घटकों को संलग्न करता है जो स्वास्थ्य, भौतिकी, नेटवर्किंग जैसी चीजों को संभालते हैं और जो कुछ भी आप उन्हें करते हैं। लेकिन मुझे समझ में नहीं आता है कि वाई कैसे वस्तु की स्थिति बदल गया है तो घटक एक्स जानता है। जैसे कि PhysicsComponent को कैसे पता चलता है कि खिलाड़ी जीवित है, क्योंकि HealthComponent द्वारा स्वास्थ्य को नियंत्रित किया जाता है ..? और HealthComponent "प्लेयर-डेड-एनीमेशन" कैसे निभाता है?
मैं इस धारणा के तहत था कि यह कुछ इस तरह था (HealthComponent में):
if(Health < 0) {
AnimationComponent.PlayAnimation("played-died-animation")
}
लेकिन फिर, HealthComponent को कैसे पता चलता है कि एनीमेशन ऑब्जेक्ट के साथ गेम ऑब्जेक्ट जुड़ा हुआ है? एकमात्र समाधान जो मैं यहां देख रहा हूं वह है
यह देखने के लिए जाँच करें कि क्या कोई ऐनिमेशनकम्पोनेंट संलग्न है या नहीं (या तो घटक कोड के अंदर या इंजन की तरफ)
घटकों को अन्य घटकों की आवश्यकता होती है, लेकिन ऐसा लगता है कि पूरे घटक-डिजाइन से लड़ते हैं।
जैसे लिखें, HealthWithAnimationComponent, HealthNoAnimationComponent, और soo, जो फिर से पूरे घटक-डिजाइन विचार से लड़ने के लिए लगता है।