2012-08-11 12 views
6

मेरे पास एक ऐसा गेम है जो प्लेयर के कुछ आंकड़ों के स्तर के खिलाड़ी को सूचित करने के लिए प्रगति पट्टी का उपयोग करता है। उदाहरण के लिए भूख, जब यह शून्य से शुरू होता है और धीरे-धीरे अधिकतम बार तक जोड़ता है। जब वह भूख खाता है तो कम हो जाता है।cocos2d में प्रगति पट्टी को कैसे बनाएं और सही तरीके से अपडेट करें?

मैंने प्रगति बार के रूप में कार्यान्वित करने की कोशिश की, लेकिन यह गलत काम करता है, क्योंकि बार दोनों तरीकों से फैलता है, और मुझे केवल एक तरफ बढ़ने की आवश्यकता है। इसके अलावा मुझे बार सेट करने में कठिनाई थी, क्योंकि यह क्रियाओं का उपयोग करता है।

क्या ऐसा करने का कोई आसान तरीका है?

मेरे पास एक कक्षा पालतू है और इसमें भूख (0-100) है। मैं चाहता हूं कि बार भूख दिखाए।

hungerBar = [CCSprite spriteWithFile:@"redbar.png"]; 
    CCLabelTTF *hungerLabel = [CCLabelTTF labelWithString:@"Hunger:" fontName:@"Helvetica" fontSize:25]; 
    [hungerLabel setColor:ccc3(255, 255, 255)]; 

// CGPoint temp = ccp(250, 300); 
// hungerBar.position = temp; 
// [self addChild:hungerBar]; 
    CGPoint temp2 = ccp(250, 320); 
    [hungerLabel setPosition:temp2]; 
    [self addChild:hungerLabel]; 

    CCSprite *bar = [CCSprite spriteWithFile:@"redbar.png"]; 
    powerBar= [CCProgressTimer progressWithSprite:bar]; 
    powerBar.type = kCCProgressTimerTypeBar; 
    powerBar.position = ccp(-30, -10); 
    powerBar.anchorPoint = ccp(0, 0); 
    powerBar.percentage = 20; // (0 - 100) 
    [hungerLabel addChild:powerBar]; 

जोड़ा गया स्रोत।

+0

क्या आप अपनी प्रगति को दिखाने में सक्षम हैंबार कोड? –

उत्तर

15

cocos2d 2.0 से पहले, आप केवल प्रकार के CCProgressTimer का उपयोग करने में सक्षम होना चाहिए: kCCProgressTimerTypeHorizontalBarLR

CCProgressTimer* powerBar= [CCProgressTimer progressWithFile:@"fullbar.png"]; 
powerBar.type = kCCProgressTimerTypeHorizontalBarLR; 
powerBar.percentage = 0; // (0 - 100) 

अपने भूख स्तर भिन्न करने के लिए, बस अपने पट्टी के प्रतिशत गुण सेट।

संपादित:

ठीक है, Cocos2d 2.0 के साथ, ऐसा लगता है कि इस तरह के एक प्रकार अब उपलब्ध नहीं है। एक बाएँ-से-दाएँ-बार पाने के लिए आपको नई लेकिन कुछ भ्रामक मध्य और barChangeRate गुण (cocos2D 2.0 documentation link) स्थापित करने के लिए की आवश्यकता होगी:

CCProgressTimer* powerBar= [CCProgressTimer progressWithSprite:[CCSprite spriteWithFile:@"fullbar.png"]]; 
powerBar.type = kCCProgressTimerTypeBar; 
powerBar.midpoint = ccp(0,0); // starts from left 
powerBar.barChangeRate = ccp(1,0); // grow only in the "x"-horizontal direction 
powerBar.percentage = 0; // (0 - 100) 

देखने के लिए कि इन मदद करता है!

+0

यह कोकोस 2 डी में काम नहीं करता है 2. इस तरह की कोई विधि नहीं है, केवल स्प्राइट के साथ विधि है, मैंने इसे बनाया है, ठीक है, लेकिन बार दोनों तरह के विकास को बढ़ाता है और मुझे केवल एक ही रास्ता चाहिए। इसके अलावा cocos2d 2 में ऐसा कोई प्रकार नहीं है, केवल निम्न प्रकार है - CCSprite * bar = [CCSprite spriteWithFile: @ "redbar.png"]; पावरबार = [सीसी प्रोग्रेस टाइमर प्रगति WithSprite: बार]; powerBar.type = kCCProgressTimerTypeBar; – Dvole

+0

हाँ, स्पष्ट रूप से उन्होंने 2.0 में टाइप को हटा दिया। मेरा संपादित उत्तर देखें :) –

+0

"संपादित कोड" काम करता है, धन्यवाद – kamankily

संबंधित मुद्दे