更改 SKPhysicsBody 参数无效

Posted

技术标签:

【中文标题】更改 SKPhysicsBody 参数无效【英文标题】:Changing SKPhysicsBody parameters doesn't have effect 【发布时间】:2017-07-16 13:42:52 【问题描述】:

我尝试模拟不同类型的球(足球、网球、高尔夫、排球等)的行为。为了这些目的,我试图改变物理体的密度、质量、尺寸参数。 在我的游戏中它没有效果,我试图在非常简单的应用程序中模拟它,包括球和桨

球总是以相同的速度上升到相同的高度,无论质量、密度、大小如何

这是因为restitution等于1吗?如何以这种方式模拟不同球类型的行为?

【问题讨论】:

【参考方案1】:

您需要更改恢复属性以及 Lin。阻尼和 Ang。每球阻尼

对于我的例子,我有

网球 - 休息 0.6 lin 0.2 ang 0.2

足球 - 休息。 0.5 林 0.3 昂 0.2

高尔夫球 - 休息 0.8 林 0.3 昂 0.3

铅球 - 休息 0.1 林 0.1 昂 0.1

这里是指向 Apple 属性定义的链接

https://developer.apple.com/documentation/spritekit/skphysicsbody/1519906-mass

【讨论】:

非常感谢您的回答!是否可以在不改变恢复原状的情况下做到这一点,因为我不需要我的身体在接触后失去能量,我只需要不同高度的不同质量的身体。 当然,阻尼值越低,球的弹跳越高。即使将恢复原状设置为 1 书呆子注意,所有这些球在现实中从相同高度落下时会同时落地,但弹跳确实不同。不确定是否有办法复制它。 hey nerd ;) 它们实际上确实以相同的速度下降(这是您对重力的预期)它可能只是视频中的故障,我敢打赌 giphy 记录器在场景编辑器中结结巴巴.当我在不记录的情况下单独观看序列时,它们都以相同的速度下降 @RonMyschuk quicktime 提供屏幕录制,之后您可以随时将视频转换为 gif。试一试,看看你是否能从中获得更好的性能

以上是关于更改 SKPhysicsBody 参数无效的主要内容,如果未能解决你的问题,请参考以下文章

Delphi东京版FireDAC连接MSSQL2000提示对象名 'SYS.DATABASES' 无效

停止 SKSpriteNode 离开视图 (Swift)

在移动 SKSpriteNode 时将 Velocity 添加到 SKPhysicsBody

如何将 SKPhysicsBody(texture: size:) 居中于 SKSpriteNode 锚点以外的点

获取 SKPhysicsBody 以在纹理动画时更新(Swift)

SqlServer Bug:复制架构更改参数(replicate_ddl)无效