菜鸟教程小白 发表于 2022-12-12 14:35:47

ios - Xcode 6.2 iOS 8.2 升级后 SKPhysicsBody 倒置


                                            <p><p>编辑:这在 6.3/8.3 更新中仍然存在问题。谁有解决办法?</p>

<p>在 Xcode 6.2/iOS 8.2 之前,<a href="https://stackoverflow.com/questions/27748034/spritekit-skphysicsbody-bodywithtexture-is-upside-down" rel="noreferrer noopener nofollow">this</a>问题解决了我的问题。现在,在我重新加载 Sprite 后,我的 SKPhysicsBody 再次倒置,或者从以前“使用”的纹理创建一个新的 SKPhysicsBody。这对我的游戏来说是个大问题,因为它会打乱我的整个游戏过程。</p>

<p>这是我在 init 中加载纹理的地方:</p>

<pre><code>@property (strong, nonatomic) SKTextureAtlas *allTextures;
    - (id)initWithSize:(CGSize)size
    {
      self = ;
      if (self)
      {
            self.allTextures = ;
             withCompletionHandler:^{
                        NSLog(@&#34;ATLASES LOADED&#34;);
            }];
      }
      return self;
    }
</code></pre>

<p>这里是我创建 Sprite 和 SKPhysicsBody 的地方:</p>

<p>//对象在@implementation 中设置为 <code>SKSpriteNode *object;</code></p>

<pre><code>- (void)setupObject
{
    object = ];
    object.position = CGPointMake(self.size.height / 2, object.size.width + 20);
    object.name = kObjectName;
    object.zPosition = 1;
    object.physicsBody = ;
    ;
}

- (SKPhysicsBody *)setupObjectPhysicsBody
{
    SKPhysicsBody *objectBody = ;
    objectBody.affectedByGravity = YES;
    objectBody.dynamic = YES;
    objectBody.mass = 1.0;
    objectBody.restitution = 0.0;
    objectBody.allowsRotation = NO;
    objectBody.categoryBitMask = objectCategory;
    objectBody.collisionBitMask = groundCategory | obsticalCategory | waterCategory | blockCategory | otherCategory;
    objectBody.contactTestBitMask = groundCategory | obsticalCategory | otherCategory;
    objectBody.usesPreciseCollisionDetection = YES;
    return objectBody;
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在经历了这个错误之后(从 iOS 8.2 开始?)我终于设法摆脱了逆物理体效应。</p>

<p>我是如何解决的?我只是用另一个 Sprite 替换了我正在使用的 Sprite 进行其他一些测试,它可以在不反转物理体的情况下工作。所以我什么时候用photoshop制作了第一个 Sprite 的另一个版本(有问题的那个),它终于成功了!!</p>

<p>所以,我认为这与 Sprite 的复杂性有关,也许是因为它无法在图像上找到“闭合形状”,我​​不知道,但知道它正在与新 Sprite 一起使用。 </p>

<p>我希望你现在至少可以继续你的开发,并让 Apple 将来修复这个问题!</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Xcode 6.2 iOS 8.2 升级后 SKPhysicsBody 倒置,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/29051760/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/29051760/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Xcode 6.2 iOS 8.2 升级后 SKPhysicsBody 倒置