ios – Touch移动方法中物理体尺寸不随SKSpriteNode尺寸变化而变化

我正在尝试创建一个弹簧发射器,当触摸在场景上移动时,弹簧会在触摸被拖动的同时盘绕并且在触摸结束方法上弹出弹簧上方的物品.为此我改变了触摸移动方法中SKSpriteNode的大小和位置 –

launcher.position               =   CGPointMake(frame.size.width*0.97, launcher.position.y-1)
launcher.size                   =   CGSizeMake(frame.size.width*0.05, launcher.frame.size.height-2)

但SKSpriteNode的物理主体没有改变它是这样的 –

请帮助..如果改变SKSpriteNode的物理体比它在设备上的滞后太多..

let springTexture    =   SKTexture(imageNamed: "spring-wire")
launcher.physicsBody = SKPhysicsBody(texture: springTexture, size: launcher.size)
launcher.physicsBody?.dynamic = false

创建一次后,有没有办法改变物理体的大小?

最佳答案 我通过改变在touchesMoved方法中改变其大小的SKSpriteNode的yScale来修复它

launcher.yScale =   launcher.yScale-0.008
launcher.position  =   CGPointMake(frame.size.width*0.97, launcher.size.height/2)

我不知道这是否是正确的方法,但是由此SKSpriteNode的物理机构相应地改变.

点赞