क्या स्प्राइटकिट में ढाल वाले बक्से को बनाने का कोई संभावित तरीका है? मैंने इसके साथ एक आकृति नोड भरने की कोशिश की है, लेकिन यह नोट करता है कि केवल ठोस रंग skshapenode के साथ काम करते हैं।Spritekit में ग्रेडियेंट कैसे बनाएं?
उत्तर
मुझे नहीं लगता कि यह वर्तमान SKShapeNode
के साथ संभव है, जो वर्तमान में इसकी मूलभूत सुविधाओं को आसानी से संभालता है। यदि आप पूर्व-मौजूदा स्प्राइट ढाल छवियों का उपयोग नहीं करना चाहते हैं तो एक अच्छा दृष्टिकोण SKTexture
को CIFilter
(जैसे CILinearGradient
इस मामले में) को मूल बॉक्स छवि पर लागू करने से, और से SKSpriteNode
बनाने से बनाना होगा।
मैट का जवाब सही है, लेकिन मैं अभी तक ढाल जोड़ने में असमर्थ हूं। यह मेरा घुमावदार प्रयास है, अगर कोई जानता है कि इसे कैसे काम करना है, तो कृपया थ्रेड के लिए अपडेट करें।
यहाँ Core Image Ref
CIFilter *gradientFilter = [CIFilter filterWithName:@"CILinearGradient"];
//[gradientFilter setDefaults];
CIColor *startColor = [CIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0];
CIColor *endColor = [CIColor colorWithRed:0 green:0 blue:0 alpha:1.0];
CIVector *startVector = [CIVector vectorWithX:0 Y:0];
CIVector *endVector = [CIVector vectorWithX:0.21 Y:0.31];
[gradientFilter setValue:startVector forKey:@"inputPoint0"];
[gradientFilter setValue:endVector forKey:@"inputPoint1"];
[gradientFilter setValue:startColor forKey:@"inputColor0"];
[gradientFilter setValue:endColor forKey:@"inputColor1"];
SKEffectNode *effectNode = [SKEffectNode node];
effectNode.filter = gradientFilter;
effectNode.shouldEnableEffects = YES;
[self addChild:effectNode];
//effectNode.position = CGPointMake(200, 200);
एक और अच्छा आपके फ़िल्टर का परीक्षण करने रास्ता है, यहाँ एक समाधान है WWDC 2013
मैं हमें ग्रेडियंटेंट लेयर बनाने और यूआईएममेज संदर्भ बनाने में सक्षम था, जो इसे प्रस्तुत करता था संदर्भ पर परत, और परिणामस्वरूप UIImage से बनावट बनाना, यह तेज़ था, और मुझे धीमा नहीं हुआ (लेकिन मुझे केवल एक बटन के लिए एक बनाने की आवश्यकता है)। – AwDogsGo2Heaven
@ AwDogsGo2Heaven क्या आप उस कोड को उत्तर के रूप में जोड़ सकते हैं। – DogCoffee
मैंने उपरोक्त उत्तर जोड़ा। – AwDogsGo2Heaven
से डेमो एप्लिकेशन CIFunHouse डाउनलोड है। (ध्यान दें, मैं Rubymotion, एक गहरे लाल रंग का उद्देश्य सी/iOS के लिए बाध्यकारी, उपयोग कर रहा हूँ लेकिन तर्क बिल्कुल वैसा ही है। किसी को इस संपादित करें और उद्देश्य सी बराबर डाल करना चाहता है, आगे बढ़ो
size = CGSizeMake(50,50)
scale = options[:scale] || UIScreen.mainScreen.scale
opaque = options.fetch(:opaque, false)
UIGraphicsBeginImageContextWithOptions(size, opaque, scale)
context = UIGraphicsGetCurrentContext()
gradient = CAGradientLayer.layer
gradient.frame = CGRectMake(0,0,50,50)
gradient.colors = [SKColor.blackColor.CGColor,SKColor.whiteColor.CGColor]
gradient.renderInContext(context)
image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
texture = SKTexture.textureWithCGImage(image.CGImage)
node = SKSpriteNode.alloc.initWithTexture(texture)
धन्यवाद लेकिन यह ओएसएक्स के लिए काम नहीं करेगा: स्प्राइट किट। यह आईओएस तक ही सीमित है। – Jonny
वैसे भी कारण क्यों? – AwDogsGo2Heaven
UIGraphicsBeginImageContextWithOptions मौजूद नहीं है। – Jonny
ठीक यहाँ है मैं अब कुछ उपयोग कर रहा हूं। मैंने इसे AwDogsGo2Heaven के समाधान पर आधारित किया, हालांकि मैक के लिए अनुकूलित किया गया। एक पूरी तरह से संगत समाधान के साथ मीठा होगा। मुझे यकीन है कि संदर्भ कैसे बनाएं। लेकिन काम करने लगता है। इसके अलावा मैं पैमाने के बारे में अनिश्चित हूं। रेटिना मैक और गैर रेटिना मैक पर चल रहा है और किसी भी समस्या को नहीं देख सकता है लेकिन संदर्भ स्केल 2 का उपयोग करके बनाया गया है, इसलिए गैर रेटिना मैक के लिए ओवरकिल हो सकता है। मैंने इसे SKTexture पर एक श्रेणी में रखा है।
इसका उपयोग करने के लिए, बसपर कॉल करें 210।
संपादित करें: अपडेट किया गया कोड और यहाँ और अधिक चर्चा: Gradient texture has wrong scale on retina Mac
- 1. SpriteKit
- 2. एकाधिक स्टॉप ग्रेडियेंट खंड शेडर कैसे बनाएं?
- 3. SpriteKit
- 4. SpriteKit
- 5. SpriteKit
- 6. SpriteKit
- 7. SpriteKit
- 8. ग्रेडियेंट
- 9. SpriteKit टेम्पलेट
- 10. एचटीएमएल/सीएसएस: विग्नेट प्रभाव कैसे बनाएं? 4 छवियां? CSS3 ग्रेडियेंट?
- 11. एंड्रॉइड में ओवल ग्रेडियेंट
- 12. spritekit दृश्य संपादक
- 13. एंड्रॉइड ग्रेडियेंट
- 14. spritekit ios9 fps ड्रॉप
- 15. SpriteKit SKPhysicsBody किनारों
- 16. एक कण SpriteKit
- 17. रैडियल ग्रेडियेंट
- 18. सीएसएस ग्रेडियेंट अस्पष्टता (पृष्ठभूमि नहीं)
- 19. UIImageView में ग्रेडियेंट/छायाएं फ्लिपबोर्ड
- 20. ग्रेडियेंट रंग
- 21. ग्रेडियेंट शैलियों
- 22. SpriteKit में स्विफ्ट के साथ "enumerateChildNodesWithName" का उपयोग कैसे करें?
- 23. UINavigationBar पर ग्रेडियेंट निकालें
- 24. चिकना सीएसएस ग्रेडियेंट
- 25. सीएसएस ग्रेडियेंट चेकरबोर्ड पैटर्न
- 26. सीवीजी ग्रेडियेंट सीएसएस
- 27. डी 3 आर्क ग्रेडियेंट
- 28. ग्रेडियेंट पृष्ठभूमि रंग :: चयन
- 29. ग्रेडियेंट डेसेंट एल्गोरिदम
- 30. रेडियल ग्रेडियेंट पृष्ठभूमि को कैसे स्थिति दें
मैं वापस कर रहा हूँ .. और इस पाया: https://gist.github.com/Tantas/7fc01803d6b559da48d6 – Jonny
इस https का संदर्भ लें: // stackoverflow .com/प्रश्न/188944 9 3/बनाना-a-skscenes-background-transparent-not-working-is-this-a-bug/24494346 # 24494346 – Suresh