के लिए वेग सेट करें मैं स्विफ्ट पर एक चलती प्लेटफॉर्म बनाने की कोशिश कर रहा हूं और प्लेयर को मंच के साथ एक साथ स्थानांतरित करने के लिए, मुझे self.moveByX()
को बदलने की आवश्यकता है, जो physicsBody?.velocity
पर बहुत आसान था, और मंच और खिलाड़ी दोनों के लिए कुछ घर्षण जोड़ें)।स्विफ्ट: दूरी
तो, मैं इस तरह एक समारोह बना दिया:
self.runAction(
SKAction.repeatActionForever(
SKAction.sequence([
SKAction.runBlock({
print(self.position.x)
self.physicsBody?.velocity = CGVectorMake(20, 0.0)
}),
SKAction.waitForDuration(3),
SKAction.runBlock({
print(self.position.x)
self.physicsBody?.velocity = CGVectorMake(-20, 0.0)
}),
SKAction.waitForDuration(3)
])
)
)
समस्या यह है कि मैं पदों के बीच का अंतर वास्तव में 60 (20 * 3s) होने की उम्मीद है, लेकिन मैं मंच के लॉग प्राप्त कर रहा हूँ x
स्थिति इस तरह:
596.042907714844
544.228393554688
596.048950195312
544.234008789062
596.054565429688
544.116333007812
595.936584472656
544.121887207031
595.942199707031
544.127685546875
595.824584960938
544.009704589844
तो, पदों के बीच का अंतर कुछ
~ 51 के बीच 52 कैसे मैं एक कल्पना में मंच चलता है वेग बदलकर ific और सटीक दूरी?संपादित करें: अगर यह प्रासंगिक है मैं नहीं जानता, लेकिन मैं इस तरह मंच के भौतिक विज्ञान शरीर निर्धारित किया है:
self.physicsBody = SKPhysicsBody(rectangleOfSize: self.size)
self.physicsBody?.categoryBitMask = PhysicsCategory.Ground
self.physicsBody?.contactTestBitMask = PhysicsCategory.Player
self.physicsBody?.collisionBitMask = PhysicsCategory.Player
self.physicsBody?.allowsRotation = false
self.physicsBody?.affectedByGravity = false
self.physicsBody?.dynamic = true
self.physicsBody?.friction = 1.0
self.physicsBody?.restitution = 0.0
self.physicsBody?.mass = 99999999999
मैंने थोड़ी देर के लिए स्प्राइट किट के साथ काम नहीं किया है। लेकिन मुझे लगता है कि आप बार-बार वेग को दोहरा रहे हैं। अपने "SKAction.runBlock" में "self.physicsBody? .velocity" को लागू करने से पहले अपनी वेग को शून्य पर रीसेट करने का प्रयास करें। फिर यह सिर्फ एक अनुमान है, मैं अब spritekit के साथ काम नहीं करता। लेकिन घर्षण/वेग हानि दोनों वस्तुओं के लिए समान नहीं हो सकती है। गति को रीसेट करने से यह ठीक हो सकता है। शुभकामनाएं मेट। –
हाँ, मैंने यह भी कोशिश की है, समस्या –
को बदलने के लिए ठीक नहीं है, क्या आपने दोनों ऑब्जेक्ट्स को समान आकार/द्रव्यमान बनाने की कोशिश की है? जब आप ऐसा करते हैं, तो क्या समस्या गायब हो जाती है? –