मैं स्प्राइट किट के साथ पिन जोड़ों का परीक्षण कर रहा हूं, और मुझे कुछ असामान्य घटना मिल रही है।स्प्राइट किट पिन जोड़ों में एक गलत एंकर होता है
मेरा वांछित सेटअप यह है: एक चौड़ा, फ्लैट बॉक्स, और दो मंडल; मंडल SKPhysicsPinJoints के माध्यम से बॉक्स में जुड़े हुए हैं, इसलिए वे पहियों के रूप में कार्य कर सकते हैं।
मेरा कोड यहां है। मैं इसे के रूप में संभव के रूप में संक्षिप्त बनाने के लिए कोशिश की है:
- (SKNode*) createWheelWithRadius:(float)wheelRadius {
CGRect wheelRect = CGRectMake(-wheelRadius, -wheelRadius, wheelRadius*2, wheelRadius*2);
SKShapeNode* wheelNode = [[SKShapeNode alloc] init];
wheelNode.path = [UIBezierPath bezierPathWithOvalInRect:wheelRect].CGPath;
wheelNode.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:wheelRadius];
return wheelNode;
}
- (void) createCar {
// Create the car
SKSpriteNode* carNode = [SKSpriteNode spriteNodeWithColor:[SKColor yellowColor] size:CGSizeMake(150, 50)];
carNode.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:carNode.size];
carNode.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
[self addChild:carNode];
// Create the left wheel
SKNode* leftWheelNode = [self createWheelWithRadius:30];
leftWheelNode.position = CGPointMake(carNode.position.x-80, carNode.position.y);
[self addChild:leftWheelNode];
// Create the right wheel
SKNode* rightWheelNode = [self createWheelWithRadius:30];
rightWheelNode.position = CGPointMake(carNode.position.x+80, carNode.position.y);
[self addChild:rightWheelNode];
// Attach the wheels to the body
CGPoint leftWheelPosition = leftWheelNode.position;
CGPoint rightWheelPosition = rightWheelNode.position;
SKPhysicsJointPin* leftPinJoint = [SKPhysicsJointPin jointWithBodyA:carNode.physicsBody bodyB:leftWheelNode.physicsBody anchor:leftWheelPosition];
SKPhysicsJointPin* rightPinJoint = [SKPhysicsJointPin jointWithBodyA:carNode.physicsBody bodyB:rightWheelNode.physicsBody anchor:rightWheelPosition];
[self.physicsWorld addJoint:leftPinJoint];
[self.physicsWorld addJoint:rightPinJoint];
}
क्या मैं उम्मीद कर रहा हूँ कि पिन जोड़ों उनके केंद्र बिंदुओं पर लंगर डाले रहे हैं; हालांकि, जब मैं इसका परीक्षण करता हूं, जोड़ों के लिए एंकर बहुत दूर दिखाई देते हैं।
क्या मुझे कुछ वास्तव में स्पष्ट याद आ रही है?
आपके टीवीसी में अच्छा छोटा उदाहरण, आप नंबरऑफसेक्शन इनटेबल व्यू पर टिप्पणी कर सकते हैं, और नंबरऑफ्रोइन्स इनसेक्शन के लिए, बस [_dataSourceArray count] का उपयोग करें। यह एक अच्छा उदाहरण है, आपको [head.physicsBody applyTorque: 0.2] जोड़ना चाहिए; वास्तव में निश्चित संयुक्त में अपना अंतर दिखाने के लिए पिन में शामिल हों। अच्छा काम - साझा करने के लिए धन्यवाद। – DogCoffee
धन्यवाद धन्यवाद .. मैंने उदाहरण अपडेट किया। लेकिन, टीवीसी को इस तरह से कोडित किया गया है, क्योंकि इसमें दो वर्ग हैं। मैं आपकी कार उदाहरण को संयुक्त प्रकार के रूप में नहीं जोड़ सका। :) उस उदाहरण को एक अलग खंड में रखा गया है। – Bavan
मैं अब उदाहरण में कार नहीं देख सकता, अभी भी जोड़ों की सूची है। मैं अपने सभी टेस्ट कोड को एक टीवीसी में डाल दूंगा - कूल विचार! – DogCoffee