gpt4 book ai didi

xcode - 当世界是物理体时,如何将世界置于位置中心?

转载 作者:行者123 更新时间:2023-11-30 14:08:42 25 4
gpt4 key购买 nike

我的所有 Sprite 都是世界的子节点。我希望相机以我的角色(它是世界的成员)为中心,因此我将我的角色位置输入到此函数中,并且世界被移动,以便角色再次居中:

func centerWorldOnPosition(position: CGPoint) {
world.position = CGPoint(x: -position.x + CGRectGetMidX(frame),
y: -position.y + CGRectGetMidY(frame))
}

但是,当我后来给我的角色一个物理体时,这导致了抖动图像,因为角色是通过物理模拟和 centerWorldOnPosition 函数移动的,因为它是世界的子节点。 centerworldOnPosition 函数干扰物理模拟

为了解决这个问题,我尝试通过给它一个物理体来移动我的世界,以便通过将 centerWorldOnPositionFunction 更改为您在下面看到的内容,移动只会发生在物理模拟中。我有一个问题,因为物理体没有等效项:

    world.position = CGPoint(x: -position.x + CGRectGetMidX(frame),
y: -position.y + CGRectGetMidY(frame))

那么您建议如何解决这个问题。这就是我尝试过的。我发现世界在某种程度上追随了我的角色,但我的角色并不靠近中心,有时会脱离屏幕,有时世界会逃跑。使用velocity似乎没有cgpoints的单位。

func centerWorldOnPosition(position: CGPoint) {


let disired_position = CGPoint(x: -position.x + CGRectGetMidX(frame),
y: -position.y + CGRectGetMidY(frame))

let vectorOfChange = CGVector(dx: disired_position.x - world.position.x, dy: disired_position.y - world.position.y)

world.physicsBody!.velocity = vectorOfChange


}

最佳答案

https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Actions/Actions.html

使世界居中的代码必须位于 didFinishUpdate 中

override func didFinishUpdate() {
centerWorldOnPosition(devilfish.position)
}

关于xcode - 当世界是物理体时,如何将世界置于位置中心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32017432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com