我在屏幕上有一个图像,它是一个附有SKPhysicsBody的SKSpriteNode。我试图通过倾斜设备在屏幕上移动它。我让它沿着x轴移动,但我似乎无法让它沿着y轴移动。
我使用本教程的部分内容来达到我的目的。我使用了关于用户发货的部分来让我的图像沿x轴移动。
func processUserMotionForUpdate(currentTime: CFTimeInterval) {
let ship = childNodeWithName(kShipName)
if let data = motionManager.accelerometerData {
if (fabs(data.acceleration.x) > 0.2) {
ship!.physicsBody!.applyForce(CGVectorMake(40.0 * CGFloat(data.acceleration.x), 0))
}
if (fabs(data.acceleration.y) > 0.2) {
ship!.physicsBody!.applyForce(CGVectorMake(40.0 * CGFloat(data.acceleration.y), 0))
}
}
}
如果带有y的语句是我为了尝试上下移动图像而添加的部分,但它不起作用。
这里的逻辑有错吗?或者我只是以错误的方式解决这个问题?
答案 0 :(得分:1)
创建矢量以对y轴应用力时,将y参数传递给x轴。 要解决此问题,您必须在第二个applyForce语句中交换参数:
if (fabs(data.acceleration.y) > 0.2) {
ship!.physicsBody!.applyForce(CGVectorMake(0, 40.0 * CGFloat(data.acceleration.y)))
}