【问题标题】:Why am I unable to use the SKPhysicsBody constructor?为什么我无法使用 SKPhysicsBody 构造函数?
【发布时间】:2015-01-26 07:12:08
【问题描述】:

我正在使用 spritekit 和 swift (ios8, xcode 6)。当我使用physicsbody构造函数self.physicsBody = SKPhysicsBody(texture: myTexture, size: myTexture.size())时,每次都失败,出现以下错误:

<Error>: CGBitmapContextCreate: unsupported parameter combination:
 8 integer bits/component; 32 bits/pixel; 
 3-component color space;
 kCGImageAlphaPremultipliedLast; 127 bytes/row.   

但是,当我切换回诸如“SKPhysicsBody(rectangleOfSize: ...)”之类的物理体构造函数时,它可以正常工作...但是,我想使用基于纹理的物理体。为什么会发生此错误,我该如何解决?

【问题讨论】:

  • 您是否尝试过使用不同的纹理
  • 它基本上告诉你纹理的图像格式不支持。尝试使用不同的图像或将图像保存为“标准”格式,例如具有 24 位颜色(真彩色)和 8 位 Alpha 通道 (RGBA) 的 PNG。还要确保图像既不会太小(任何低于 8x8 的图像都可能有问题)也不会太大(在所有设备上都可以使用 2048x2048)。
  • 我尝试使用不同的图像,我得到了同样的错误。也许是因为我正在使用 Gimp 导出我的 PNG,而这给出了错误的格式?
  • 有什么解决办法吗?
  • 我放弃了使用基于圆的物理体构造函数。看来苹果的自动路径生成器目前被窃听了。

标签: swift ios8 sprite-kit skphysicsbody sktexture


【解决方案1】:

我通过简化用于生成物理体的纹理形状解决了这个问题。我怀疑使用具有某些特征的形状生成实体存在问题(我没有花时间识别)。无论如何,SpriteKit 中肯定存在错误,或者至少返回的错误消息没有传达有关错误发生原因的相关信息。顺便说一句,更改每个通道的位没有效果。

所以,如果可以的话,我会尽量简化你的形状。在我的情况下,此图像:在用于初始化 PhysicsBody 时生成错误,而此图像:没有。

【讨论】:

    猜你喜欢
    • 2021-07-23
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多