xcode - भौतिकी को फिट कैसे करें SKSpriteNode का आकार Xrcode में अपनी छवि के लिए SpriteKit का उपयोग करना



image sprite-kit (1)

मैं एक बहुभुज आकार के साथ शारीरिक शरीर का प्रतिनिधित्व करने का सुझाव देता हूं आपके bodyWithRectangleOfSize सुधार करने के दो तरीके हैं: bodyWithRectangleOfSize :

  1. आलसी का तरीका शरीर का उपयोग करना है। आकृति: आकार: जो एक बनावट की सामग्री से एक भौतिक विज्ञान निकाय बना देगा। लेकिन जैसा कि ऐप्पल ने सुझाव दिया है, आपके भौतिक शरीर जितना अधिक जटिल होता है, उतना काम ठीक से सिम्युलेटेड होना चाहिए। आप परिशुद्धता और प्रदर्शन के बीच एक व्यापार करना चाहते हैं
  2. अधिक उचित तरीके से एक उत्तल बहुभुज आकार के साथ अपने प्रेत की सीमा का प्रतिनिधित्व करना है। शरीर देखेंपाल्गॉनफ्रैमपाथः । उपयोगकर्ता इंटरफ़ेस में path कोड उत्पन्न करने के लिए कुछ औजार ऑनलाइन हैं। यहां एक है: एसकेएफिज़िक्सबॉडी पथ जनरेटर (ऑफसेट और एंकर पॉइंट के साथ सावधान रहें)। यदि आप स्वयं CGMutablePathRef कोड उत्पन्न करने का तरीका जानते हैं, तो आपकी स्थिति को फिट करना आसान होगा।

इसलिए मुझे यकीन नहीं है कि यह संभव है, लेकिन मैं अपनी छवि के साथ जाने के लिए भौतिक शरीर को अनुकूलित करने का प्रयास कर रहा हूं। बहुत से लोगों ने मुझे बताया है कि आईओएस एप स्टोर (स्ट्रिक डैश - इसे डाउनलोड करने वाला!) पर मेरे गेम में चरित्र के लिए हिटबॉक्से अच्छा काम नहीं करता है, क्योंकि यह गेम को बहुत कठिन बना देता है (हिटबॉक्स एक बाधा को मारता है, भले ही चरित्र यह भी छूने के लिए प्रकट नहीं होता है)। यह इस तथ्य के कारण है कि हिटबॉक्सेस आयताकार हैं, जबकि मेरे चरित्र में एक अजीब आकार है। क्या इस के आसपास जाने के लिए कोई उपाय है? मैंने कुछ तरीकों के बारे में सोचा था जो पूरी तरह से काम नहीं करते (उदाहरण के लिए, वास्तविक फ्रेम / कैनवास आकार को आयताकार से कुछ और, हिटबॉक्स आकृति / आकार बदलने की कोशिश करने, छवि को बदलने की कोशिश में बदलने की कोशिश करना आदि)। अगर मैं पहली जगह में हिटबॉन्ज़ को बदलना चाहिए या नहीं, तो यह बहुत अच्छा होगा, क्या यह एक क्रोध पैदा करने वाला गेम है जो लोगों को खेलना या रोकना चाहते हैं?)। लेकिन समस्या को सुलझाने का तरीका सबसे अच्छा होगा!

यहाँ अपने हिटबॉक्स के साथ मेरे चरित्र की एक तस्वीर है:

यहां SKSpriteNode और भौतिक शरीर के कुछ बुनियादी कोड हैं:

 sprite = [SKSpriteNode spriteNodeWithImageNamed:@"stick"];
 sprite.size = CGSizeMake(self.frame.size.width/6.31, self.frame.size.height/3.2);
 sprite.physicsBody =[SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake (sprite.size.width, sprite.size.height)];
 sprite.position = CGPointMake(self.frame.size.width/5.7, self.frame.size.height/2.9);
 sprite.physicsBody.categoryBitMask = personCategory;
 sprite.physicsBody.contactTestBitMask = lineCategory;
 sprite.physicsBody.dynamic = NO;
 sprite.physicsBody.collisionBitMask = 0;
 sprite.physicsBody.usesPreciseCollisionDetection = YES;




skphysicsbody