在SpriteKit iOS中手动移动/旋转physicsBody的最佳方式

在SpriteKit iOS中手动移动/旋转physicsBody的最佳方式,ios,objective-c,sprite-kit,skphysicsbody,Ios,Objective C,Sprite Kit,Skphysicsbody,在SpriteKit中手动移动或旋转physicsBody的最佳方式是什么?当用户触摸屏幕时,将调用移动 一个重要的要求是,身体必须移动并保持在新的位置/旋转,直到触摸结束。也就是说,仅仅施加一种冲动是不够的 非常感谢您的帮助。您可以通过两种方式旋转和移动身体 (一) 触摸旋转 sprite.physicsBody.allowsRotation=TRUE 点击更改x -(无效)模拟物理 { } 第二种方法,你们可以通过动作来完成,但要确保你们的物理身体不是动态的 [SKAction moveBy

在SpriteKit中手动移动或旋转physicsBody的最佳方式是什么?当用户触摸屏幕时,将调用移动

一个重要的要求是,身体必须移动并保持在新的位置/旋转,直到触摸结束。也就是说,仅仅施加一种冲动是不够的


非常感谢您的帮助。

您可以通过两种方式旋转和移动身体

(一)

触摸旋转

sprite.physicsBody.allowsRotation=TRUE

点击更改x

-(无效)模拟物理 {

}

第二种方法,你们可以通过动作来完成,但要确保你们的物理身体不是动态的

[SKAction moveBy:<#(CGVector)#> duration:<#(NSTimeInterval)#>];
[SKAction rotateByAngle:<#(CGFloat)#> duration:<#(NSTimeInterval)#>];
[SKAction-moveBy:duration:];
[SKAction rotateByAngle:持续时间:];

为每个动作命名,并在触摸结束时将其删除

谢谢。SKAction方式几乎可以按预期工作,除了使身体非动态会导致身体不受重力的影响,只停留在一个位置。旋转体是一个手臂,通过销关节连接到躯干,躯干需要动态。所以一碰,手臂就会伸出。我怎样才能避开这个问题@Dragoneye也别忘了
applyForce
applyTorque
触摸时将物理实体设置为零,触摸时重新创建物理实体againI尝试过,但并不理想,因为它会杀死身体关节。你的帮助给了我一个更清晰的方向,谢谢@dragoneye
[SKAction moveBy:<#(CGVector)#> duration:<#(NSTimeInterval)#>];
[SKAction rotateByAngle:<#(CGFloat)#> duration:<#(NSTimeInterval)#>];