मैं नोड के भौतिकी को बदलने में सक्षम होना चाहता हूं जब उपयोगकर्ता नीचे की ओर स्वाइप करता है, लेकिन पूरे भौतिकी को रीसेट करने के अलावा यह कैसे पता नहीं कर पाता है।रन टाइम पर स्प्राइट नोड फिजिक्स बॉडी साइज बदलें
जब मैं मूल रूप से नोड लोड, मैं नीचे दिए गए कोड का उपयोग करें:
nodeHero.color = UIColor .grayColor()
nodeHero.size.width = 20
nodeHero.size.height = 45
nodeHero.position.x = -frame.size.width/2 + 45
nodeHero.position.y = pointMainY + 30 + nodeHero.size.height/2
nodeHero.zPosition = 110
nodeHero.physicsBody = SKPhysicsBody(rectangleOfSize: CGSizeMake(nodeHero.size.width, nodeHero.size.height))
nodeHero.physicsBody?.mass = 1
nodeHero.physicsBody?.angularVelocity = 0
nodeHero.physicsBody?.allowsRotation = false
nodeHero.physicsBody?.restitution = 0
nodeHero.physicsBody?.categoryBitMask = bitHero
addChild(nodeHero)
और जब मैं नीचे स्वाइप करें, मैं इस तरह कुछ करने के लिए (यह काम नहीं करता) सक्षम होना चाहते हैं:
nodeHero.size.height = 28
nodeHero.physicsBody?.size.height = 28
लेकिन बजाय मैं nodeHero.physicsBody = SKPhysicsBody() फिर से है, जो सभी अन्य physicsBody गुण रीसेट करता है उपयोग करने के लिए है, तो मैं यह करने के लिए है:
nodeHero.size.height = 28
nodeHero.physicsBody = SKPhysicsBody(rectangleOfSize: CGSizeMake(nodeHero.size.width, nodeHero.size.height))
nodeHero.physicsBody?.mass = 1
nodeHero.physicsBody?.angularVelocity = 0
nodeHero.physicsBody?.allowsRotation = false
nodeHero.physicsBody?.restitution = 0
nodeHero.physicsBody?.categoryBitMask = bitHero
यदि आप किसी नोड पर स्केल एक्शन चलाते हैं तो ऐसा लगता है कि इसका भौतिकी शरीर भी बदल जाएगा: https://stackoverflow.com/questions/24638086/scaling-physics-bodies-x-xpritekit/33572073#33572073 – peacetype