gpt4 book ai didi

ios - 在速度应用节点上居中相机不工作

转载 作者:行者123 更新时间:2023-11-28 05:27:44 25 4
gpt4 key购买 nike

我有一个 SKNode 的子类,它由一些构成播放器的 Sprite 组成。我希望“相机”以该节点为中心(始终让播放器位于中心)。现在,在你因为它是重复的而对它投反对票之前,请听我说完。 Apple 文档建议让播放器节点完全静态,而不是围绕相机节点移动。然而,在我的例子中,我将多种物理特性应用于我的角色,包括速度脉冲。我的第一个想法是将这些脉冲应用到相机节点本身,但是由于角色上有一个小型软体物理引擎,这已变得不可能。我像这样对其施加速度:

player.primaryCircle.physicsBody!.velocity = CGVector(dx: player.primaryCircle.physicsBody!.velocity.dx+relVel.dx*rate, dy: player.primaryCircle.physicsBody!.velocity.dy+relVel.dy*rate)

我设法让它部分地使用以下代码:

    override func didSimulatePhysics() {
self.player.position = player.primaryCircle.position
self.camera.position = player.position
centerOnNode(camera)
}


func centerOnNode(node: SKNode) {
let cameraPositionInScene: CGPoint = node.scene!.convertPoint(node.position, fromNode: node.parent!)
node.parent!.position = CGPoint(x:node.parent!.position.x - cameraPositionInScene.x, y:node.parent!.position.y - cameraPositionInScene.y)
}

然而,这并不是 100% 有效,如下所示:(它应该集中在红色圆圈上) http://gyazo.com/b78950e6cc15b60f390cd8bfd407ab56

如您所见,世界/ map 在移动,但移动速度似乎不够快,无法让玩家居中。 (请注意,“未命名”文本位于屏幕上的固定位置——这就是它似乎始终位于中心的原因)

最佳答案

我认为这应该仍然适用于物理学,除非我没有真正理解这个问题。我们对带有自动跟随功能的 SKATiledMap 做了类似的事情。你需要做的是确保玩家被添加到一个你可以作为 child 移动的节点(通常是 map ),然后在更新功能中你做这样的事情......(抱歉它不是很快)

-(void)update
{
if (self.autoFollowNode)
{
self.position = CGPointMake(-self.autoFollowNode.position.x+self.scene.size.width/2, -self.autoFollowNode.position.y+self.scene.size.height/2);

//keep map from going off screen
CGPoint position = self.position;

if (position.x > 0)
position.x = 0;


if (position.y > 0)
position.y = 0;

if (position.y < -self.mapHeight*self.tileWidth+self.scene.size.height)
position.y = -self.mapHeight*self.tileWidth+self.scene.size.height;
if (position.x < -self.mapWidth*self.tileWidth+self.scene.size.width)
position.x = -self.mapWidth*self.tileWidth+self.scene.size.width;

self.position = CGPointMake((int)(position.x), (int)(position.y));
}
}

map 是玩家被添加到的节点。希望这有帮助。这里还有我们一直在处理的 git hub 项目的链接。 https://github.com/SpriteKitAlliance/SKAToolKit

关于ios - 在速度应用节点上居中相机不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30427661/

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