ios - कोकोस 2 डी 3 के साथ सर्कल में मुखौटा प्रेत




cocos2d-iphone sprite (2)

आप CCSprite में छवि के साथ सीधे सर्कल प्रेत सेट नहीं कर सकते। तो आप देखें और इसे CCScene में जोड़ें

सबसे पहले आप AGMedallionView वर्ग को डाउनलोड करते हैं और अपने प्रोजेक्ट में जोड़ें।

अपने दृश्य में उस श्रेणी को आयात करने के बाद

#import "AGMedallionView.h"

दृश्य के init विधि में

-(id) init
{
    if( (self=[super init]) )
    {
        AGMedallionView *view1 = [[AGMedallionView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
        [view1 setImage:[UIImage imageNamed:@"[email protected]"]];
        view1.borderColor = [UIColor redColor];
        view1.borderWidth = 5.0;
        [[[CCDirector sharedDirector] view] addSubview:view1];
    }
}

नीचे के रूप में प्रदर्शित करें

मेरे प्रश्न का अद्यतन होने के बाद से मुझे और अधिक मिला।

मैं एक सर्कल के साथ एक प्रेत को मुखौटा करने की कोशिश कर रहा हूं, नीचे दिए गए कोड के साथ काम करने लगता है।

    // Create the clipping node
    self.clippingNode = [CCClippingNode clippingNodeWithStencil:[CCSprite spriteWithImageNamed:@"Home Scene/top-circle-mask.png"]];

    self.clippingNode.alphaThreshold = 0;

    // Add the image
    [self.clippingNode addChild:self.maskedImage];

    // And add the clipping node to the tree
    [self addChild:self.clippingNode];

मुझे यह ऐप डिएलिटेट में भी जोड़ना था:

[cocos2dSetup setObject:@GL_DEPTH24_STENCIL8_OES forKey:CCSetupDepthFormat];

हालांकि, "प्रथम फ्रेम" छवि को अनमास्क कर देता है, ताकि थोड़े बदसूरत दिखता है, मैं उसे कैसे ठीक कर सकता हूं? मैंने समस्या प्रदर्शित करने वाला एक छोटा वीडियो बनाया है http://cl.ly/U3QF

मैं इस नज़रिए के लिए जा रहा हूं:

धन्यवाद


आपके प्रारंभिक कार्य के लिए धन्यवाद, मैं इस तरह एक दृश्य पृष्ठभूमि की चोटी पर एक ढाल डालने में सक्षम था:

CCSprite* spriteStencil = [CCSprite spriteWithImageNamed:stringSceneryfilename];
spriteStencil.anchorPoint = ccp(0, 0);
CCClippingNode* crop = [CCClippingNode clippingNodeWithStencil:spriteStencil];
crop.alphaThreshold = 0;
CCNodeGradient* nodegradient = [CCNodeGradient nodeWithColor:[CCColor colorWithRed:0 green:0 blue:0 alpha:0] fadingTo:[CCColor colorWithRed:0 green:0 blue:0 alpha:1] alongVector:ccp(0, 1)];
nodegradient.contentSizeInPoints = CGSizeMake(spriteScenery1.contentSizeInPoints.width, WINSIZE.height);
nodegradient.anchorPoint = ccp(0, 0);
[crop addChild:nodegradient];
[spriteScenery1 addChild:crop];

ढाल केवल दृश्यावली को कवर करता है जहां दृश्यावली फ़ाइल 0 से ऊपर अल्फा होती है। दृश्यावली में बहुत अधिक पारदर्शी इलाकों (आकाश ...) हैं, ध्यान दें कि मैं एक एडहॉक निर्मित ग्रेडिएंट (CCNodeGradient) का उपयोग कर रहा हूं, इसलिए आपको आवश्यकता नहीं है ठीक एक सीसीएसप्रिचाई का उपयोग करने के लिए जो क्रॉप हो जाएगा मेरे मामले में यह ढाल फसल, तो मैं मूल छवि के शीर्ष पर ढाल डाल दिया (यह स्टैंसिल के रूप में एक ही छवि स्रोत है!)

बेशक मैं भी उपयोग करते हैं

[cocos2dSetup setObject:@GL_DEPTH24_STENCIL8_OES forKey:CCSetupDepthFormat]; // for stencils to work? aka CCClippingNode

ऐप प्रतिनिधि में