Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么我必须缩放我的SKScene';s physicsBody 1.5以适应iPhone 5屏幕?_Ios_Iphone_Sprite Kit_Skphysicsbody - Fatal编程技术网

Ios 为什么我必须缩放我的SKScene';s physicsBody 1.5以适应iPhone 5屏幕?

Ios 为什么我必须缩放我的SKScene';s physicsBody 1.5以适应iPhone 5屏幕?,ios,iphone,sprite-kit,skphysicsbody,Ios,Iphone,Sprite Kit,Skphysicsbody,我正在iphone5上制作一个SpriteKit游戏。我遇到了一个奇怪的错误,应该代表屏幕边缘的physicsBody似乎太小了,似乎需要一个奇怪的比例因子才能正确 以下是将physicsBody设置为屏幕尺寸的正确方法: CGRect screenRect = [[UIScreen mainScreen] bounds]; SKPhysicsBody *sBody = [SKPhysicsBody bodyWithEdgeLoopFromRect: screenRect]; [self set

我正在iphone5上制作一个SpriteKit游戏。我遇到了一个奇怪的错误,应该代表屏幕边缘的physicsBody似乎太小了,似乎需要一个奇怪的比例因子才能正确

以下是将physicsBody设置为屏幕尺寸的正确方法:

CGRect screenRect = [[UIScreen mainScreen] bounds];
SKPhysicsBody *sBody = [SKPhysicsBody bodyWithEdgeLoopFromRect: screenRect];
[self setPhysicsBody: sBody];
但对我来说,这是使我的其他物理体与屏幕中间的一个隐形物体发生碰撞,使它们离开屏幕边缘而不受任何干扰。

然而,这:

CGRect screenRect = [[UIScreen mainScreen] bounds];
CGRect x2Rect = CGRectMake(0, 0, screenRect.size.width * 1.5, screenRect.size.height * 1.5);
SKPhysicsBody *sBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:x2Rect];
[self setPhysicsBody: sBody];

结果在屏幕中部完全没有奇怪的物体,在其他物理体中与屏幕的侧面相撞。


哈什么?

你试过:self.physicsBody=[SKPhysicsBody-bodyWithEdgeLoopFromRect:self.frame];这行代码应该足以让屏幕显示为physicsBodyYep。这就是我们开始的。与案例#1相同的结果。你在哪里展示场景?如果它在viewDidLoad中,并且应用程序是横向的,则坐标将被交换。使用viewWillLayoutSubviews显示第一个场景(注意:必须检查self.view.scene是否为零)应用程序不是横向的。我们使用viewDidLoad进行演示,但我不认为这是一个问题:交换的坐标与矩形的宽度无关,是吗?