gpt4 book ai didi

ios - SKPhysicsBody 在错误的位置

转载 作者:行者123 更新时间:2023-11-28 22:11:13 26 4
gpt4 key购买 nike

我正在创建一个简单的 Sprite Kit 游戏,但是当我将 PhysicsBody 添加到我的一个 Sprite 时,它似乎处于错误的位置。我知道它在我设置的错误位置skView.showsPhysics = YES;它出现在错误的位置。

enter image description here

底角的正方形是第一个半圆的物理体。我现在使用正方形只是为了测试目的。

我的应用程序包含 View 跟随功能,并在我的主 Sprite 移动时跟随它。我通过遵循苹果文档并创建一个“我的世界”节点并从该节点创建所有其他节点来实现这一点。

 myWorld = [SKNode node];

[self addChild:myWorld];

semicircle = [SKSpriteNode spriteNodeWithImageNamed:@"SEMICRICLE.png"];
semicircle.size = CGSizeMake(semicircle.frame.size.width/10, semicircle.frame.size.height/10);
semicircle.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:semicircle.frame.size];
semicircle.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2);
semicircle.physicsBody.dynamic = YES;
semicircle.physicsBody.collisionBitMask = 0;
semicircle.name = @"semicircle";
[myWorld addChild:semicircle];

为了以节点为中心,我调用了这些方法

- (void)didSimulatePhysics
{
[self centerOnNode: [self childNodeWithName: @"//mainball"]];
}

- (void) centerOnNode: (SKNode *) node
{
CGPoint cameraPositionInScene = [node.scene convertPoint:node.position fromNode:node.parent];
node.parent.position = CGPointMake(node.parent.position.x - cameraPositionInScene.x, node.parent.position.y - cameraPositionInScene.y);
}

我不知道我的世界的东西对 SkPhysics body 是否有任何影响......

最佳答案

SKPhysicsBody 从左下角的坐标 0,0 开始。如果你缩小区域,就像你通过 width/10 和 height/10 所做的那样,你会减小尺寸,但从左下角开始。

我想你要找的是bodyWithRectangleOfSize:center:这允许您手动设置物理 body 区域所基于的中心。

更新:

据我了解,您的最小半圆图片尺寸与屏幕尺寸相同。我建议您将图像大小修改为类似于我的示例。然后您可以根据需要设置 Sprite 的位置并将物理体设置为包含您的半圆的图像的一半。 enter image description here

关于ios - SKPhysicsBody 在错误的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22875047/

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