स्प्राइटकिट का उपयोग कर मेरे वर्तमान प्रोजेक्ट में, मेरे पास स्प्राइट्स का एक गुच्छा है जिसे विभिन्न समय पर स्वतंत्र रूप से ऊपर और नीचे स्केल किया जाना चाहिए। समस्या यह है कि जब मैं नोड को स्केल करता हूं, भौतिकी शरीर इसके साथ स्केल नहीं करता है, इसलिए यह भौतिकी को खराब करता है।SKPhysicsBody और [SKNode setScale:]
CGSize objectSize = CGSizeMake(100, 100);
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:CGRectMake(0, 0, self.size.width, self.size.height)];
SKSpriteNode *n1 = [SKSpriteNode spriteNodeWithColor:[UIColor blueColor] size:objectSize];
n1.position = CGPointMake(self.size.width/2, 2*self.size.height/3);
n1.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:objectSize];
n1.physicsBody.affectedByGravity = YES;
[self addChild:n1];
SKSpriteNode *n2 = [SKSpriteNode spriteNodeWithColor:[UIColor redColor] size:objectSize];
n2.position = CGPointMake(self.size.width/2, self.size.height/3);
n2.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:objectSize];
n2.physicsBody.affectedByGravity = YES;
[self addChild:n2];
[n1 setScale:0.5];
सूचना कैसे नीले स्प्राइट (छोटा) लाल एक के शीर्ष पर बैठता है, लेकिन आप अपने भौतिक विज्ञान शरीर अभी भी बता सकते हैं: यहाँ एक छोटा सा उदाहरण मैं इस सवाल के उद्देश्य के लिए एक साथ रखा है आयाम मैंने इसे बताया है, और यह पैमाने पर नहीं था।
तो जाहिर है, नोड को स्केलिंग भौतिकी को स्केल नहीं करता है। तो मेरा सवाल यह है कि अगर मुझे इसे मैन्युअल रूप से करना है, तो मैं इसके बारे में कैसे जा सकता हूं?
मैंने स्केलिंग के दौरान शरीर को सही आकार में से एक के साथ स्वैप करने का प्रयास किया, लेकिन फिर पुराने शरीर के जोड़ों के साथ चीजें वास्तव में गड़बड़ हो गईं ... यह बहुत आसान होगा अगर मैं मौजूदा निकाय को स्केल कर सकूं किसी न किसी तरह।
बॉक्स 2 डी (एसके द्वारा उपयोग किए गए) में शरीर के आकार की कोई स्केलिंग नहीं है – LearnCocos2D