c++ - Calling class method through looping std::map -
मुझे और कई यह कक्षाओं से विरासत में मिला: मुझे क्या चाहिए: बनाएं भरें इस std :: map के माध्यम से लूपिंग प्रत्येक CCObject.h से यह मानते हुए कि आप जैसा कि आपके प्रश्न में प्रस्तुत किया गया है, लगता है कि CharacterAnimation नामक कक्षा में एक वर्चुअल विधि शामिल है:
< कोड> चरित्रएनिमेशन: सार्वजनिक cocos2d :: CCObject {सार्वजनिक: ... वर्चुअल शून्य प्रारंभ (फ्लोट टीडी); }
CharacterAnimationBlink
CharactedAnimationDropTear
std :: map & lt; std :: स्ट्रिंग, कैरेक्टर एनीमेशन * & gt; animationsList;
animationList की तरह:
animationsList [ "झपकी"] नई CharacterAnimationBlink = (1 , 2,3); एनिमेशन ["ड्रॉपटेयर"] = नए चरित्रएनिमेशनड्रॉपरटेयर (1,2);
std :: map तत्व कॉल
यह-> अनुसूची (शेड्यूल_सीलक्टर (चरित्रएनिमेशनस्टार्टमॉन्डेपॉन्टर), कैरेक्टर :: ऐनिमेशन पीरियोड);
currentAnimationStartMethodPointer के बजाय क्या रखा जाना चाहिए? मैं वर्तमान कोड के
std :: map से
प्रारंभ () विधि के लिए एक संकेतक कैसे उपयोग कर सकता हूं
टाइप किए गएफ़ शून्य (सीसीओबाइज :: * SEL_SCHEDULE) (फ्लोट); ... # परिभाषित शेड्यूल_सीलक्टर (_SELECTOR) (SEL_SCHEDULE) (& amp; चयन)
अनुसूची () फ़ंक्शन के लिए घोषणा को नियंत्रित नहीं करते हैं, आप
को शुरू करने के लिए एक विशेष संकेतक नहीं प्राप्त कर सकते हैं () किसी विशेष
अक्षरएनिमेशन उदाहरण इसके बजाय, आपको यहां दो चीजों की आवश्यकता है: एक सदस्य फ़ंक्शन पॉइंटर, और उस संदर्भ को संदर्भ या सूचक जिसे उस फ़ंक्शन पर कॉल किया जाना चाहिए।
अनुसूची () एक सदस्य फ़ंक्शन पॉइंटर (विशेष रूप से
CCObject वर्ग से एक फ़ंक्शन) की मांग करता है। आपका
वर्ण एनीमेशन वर्ग
CCObject से प्राप्त होता है, लेकिन कोई सदस्य कार्य सूचक
CharacterAnimation :: start () में नहीं है एक
वर्चुअल या
ओवरराइड निर्दिष्टकर्ता की कमी से मानते हुए
शुरू () फ़ंक्शन, एक
CCObject
वर्ण एनीमेशन में घोषित किया गया है और
CCObject से विरासत में नहीं मिला है।
ग प्रोग्रामिंग शुरुआती के लिए नमूने
ReplyDeleteमाउस प्रबंधन कार्य सी कोड