实际上,我正在尝试用斯威夫特创建一个游戏,我有一个错误,我想不出该如何修复它:
CollisionWithBullet(firstBody.node as SKSpriteNode, Bullet: secondBody.node as SKSpriteNode)
}
else if ((firstBody.categoryBitMask == PhysicsCategory.Enemy) && (secondBody.categoryBitMask == PhysicsCategory.PLayer) ||
(firstBody.categoryBitMask == PhysicsCategory.PLayer) && (secondBody.categoryBitMask == PhysicsCategory.Enemy)){
CollisionWithPerson(firstBody.node as SKSpriteNode , Person: secondBody.node as SKSpriteNode)
CollisionWithBullet(firstBody.node as SKSpriteNode, Bullet: secondBody.node as SKSpriteNode)我收到了以下信息:
“SKNode?”不可转换为“SKSpriteNode”;您是否有意使用“as!”迫使向下倾斜。
我在几个网站上搜索了这个解决方案,并尝试将as更改为as!和as?,但没有任何效果。
我要提前感谢你的帮助。
发布于 2015-05-14 15:25:35
这意味着您的一个精灵被初始化为SKNodes,这意味着保存SKSpriteNodes。
您试图将其降到SKSpriteNode,但是您不应该这样做,因为它们不应该显示任何图像。
修复方法是将它们初始化为SKSpriteNodes而不是SKNode。
从苹果的文件里
SKNode类是大多数Sprite内容的基本构建块。SKNode类不绘制任何可视内容。它的主要作用是提供其他节点类使用的基线行为。基于雪碧套件的游戏中的所有视觉元素都是使用预定义的SKNode子类绘制的。
https://stackoverflow.com/questions/30240884
复制相似问题