首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SKLabelNode PhysicsBody问题

SKLabelNode PhysicsBody问题
EN

Stack Overflow用户
提问于 2020-05-04 18:52:37
回答 1查看 80关注 0票数 0

游戏超级型是难以置信的。

我在考虑做一个类似于它的应用。有什么简单的方法可以将SKLabelNode的文本转化为物理体吗?

例如,我想让字母'A‘变成一个字面物理体

在不需要实际定义每个cgPath?的情况下,是否有任何简单的方法来实现这一点?

  • 我想我可以把'A‘变成一个SKSpriteNode,但这似乎很糟糕。

另外,

我在把SKSpriteNodes变成物理体的过程中遇到了很多问题。我可以很容易地将一个图像转换成一个physicsBody,但是如果一个图像被不可见的片段分割开来,那么事情就会刹车。Swift选择一个特定的片段来成为一个physicsBody。

·我也很不高兴,因为你不能定义一个凹形来制造一个物理体。但你可以有凹的连续图像成为物理体很好。

最后,

如果有一个词变成一个物理体,用布尔值来定义它会很好,它就会分崩离析或粘合在一起。有办法这样做吗?

(我在想,我可以通过在初始化中聚集一个数组来做到这一点: SKPhysicsBody)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-04 20:41:48

SKLabelNode没有物理体,所以你不能直接将物理应用于它。您可以做的是将它们创建为一组SKSpriteNodes,并将每个字母的图像分配给身体纹理。

要“打开和关闭物理体”,您应该切换节点的属性isDynamic。对于其他效果,您可以使用affectedByGravity属性以及冲突和联系人bitMasks,这取决于您想要什么。

为了让碰撞感觉更真实,你可以使用SKPhysicsContactDelegate,这样你就可以用字母的精确形状自动“绘制”一个物理物体。就像这样:

代码语言:javascript
运行
复制
letterNode.physicsBody = SKPhysicsBody(texture: letterTexture, alphaThreshold: 1.0, size: letterTexture.size())

要处理碰撞和接触,请不要忘记在场景中设置contactDelegate,如下所示:

代码语言:javascript
运行
复制
self.physicsWorld.contactDelegate = self
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61599503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档