SpriteKit - 获取 SKSpriteNode 的重量

3
我有一个应用程序,其中大盒子会落在小红盒子上方。我想知道当小红块达到一定重量时(X个块靠在它上面),请问如何得知?我找不到红块的重量属性。有什么建议吗?截图 编辑: 为了澄清。从顶部掉落的箱子尺寸和位置是随机的。所以没有办法跟踪落在红块上方的物体。我需要一种测量施加在红块上的向下力的方法。

不确定为什么这个问题被踩了(?), 因为这是一个非常有趣的问题! 也许尝试对你的方块应用力量。然后你的红色方块的质量应该会增加(我认为你必须将"affectedByGravity"属性设置为true)。现在无法测试任何东西,但我认为解决方案在SKPhysicsBody中。 - Heyfara
1
质量不应受到重力的影响,否则你就是在说地球上的物体的质量与月球上的物体的质量不同。@StackOverflower,我认为内置的物理引擎并没有为你计算重量,你可能需要手动计算(node.mass * gravity),然后应用其他块施加在该块上的力量大小。对于倾斜块的情况,你可能需要弄清楚多少倾斜块的质量实际上在红色块上。 - Knight0fDragon
物理引擎是否足够复杂,以至于您可以对红色块施加向上的力,并逐渐增加这种力,直到它开始移动? - Steve Ives
1个回答

0
您可以按照以下方式计算每个节点的权重,然后将它们相加。
redBox.PhysicsBody?.mass

大型方块将从随机位置掉落,因此有些方块可能不会掉在红色方块上。 - StackOverflower
只需检查下落方块和红色方块之间是否发生碰撞。 - Nils
如果一个大块倾斜并且卡在红色块的一半上,这种方法就不管用了。 - StackOverflower

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接