问题标签 [skphysicsworld]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 为什么我的 SKShapeNode 会通过一个对象,事先短暂暂停?
下面的代码在平放在桌面上的设备上运行时会显示一个红色圆圈(“球”)和一条线。
当我轻轻地倾斜设备时,圆圈会朝这条线移动。当它到达线路时,它会停止,这是预期和期望的行为。
但如果我继续小费,圆圈就会穿过这条线。我已经尝试了 2 天来弄清楚为什么 grrr 我只想让圆圈打线而不是通过它。
有任何想法吗?这条线是“边缘”有什么关系?
干杯,安迪
objective-c - 我可以在单独的 .m 文件(字符)中设置 SKPhysicsJoint
我对 SpriteKit 和一般编码都很陌生。我正在尝试在我的角色 .m 文件中设置一个 SKPhysicsJoint。但是,我不能使用physicsWorld 语法,因为它不是场景。
我将如何解决这个问题?
我有一个父节点,里面有两个孩子,一个小圆形精灵,物理体大小相同。我想添加第二个圆形physicsBody 两倍的半径具有相同的中心点。这样我就可以处理不同距离的碰撞。
我尝试在我的角色 .h 文件中定义 SKPhysicsJoint 并在场景文件中使用physicsWorld,但这不起作用。
我正在以正确的方式解决这个问题,或者是一个我忽略的更简单的解决方案。
ios - 如何像足球一样轻弹 SKSpriteNode
如果我在屏幕上有一个 SKSpriteNode,我将如何轻弹它以模拟足球被踢的物理效果。如何抛出 SKSpriteNode?我猜它会有点像这个问题,但是不应该发生在你的手指被轻弹之前先跟随你的节点。它应该看起来像当你轻弹时你正在向节点滑动,然后一旦你的手指击中节点,它就会像足球一样移动它。谁能给我一个起点来实现这一目标?
ios - 如何获得 Spritekit Gravity 的恒定速度
我正在制作一款俄罗斯方块类型的游戏,我希望我的方块以恒定的速度下落。我想使用 SpriteKit Physics Words Gravity 来实现它。
问题是重力必然是加速度,因此当它们下落时,块开始移动得更快。我知道我可以关闭重力并使用动作来移动块,但我希望用重力来做。
有没有办法让 SpriteKit 世界中的万有引力成为线性恒速?
swift - iOS SpriteKit 碰撞检测在解码保存后失败
我有一个游戏,其中 Falling Nodes 掉下来并击中 Base Number Sprite Node 并且游戏逻辑从那里运行。当我从头开始设置一个新游戏时,碰撞检测完全按照它应该的方式工作。当我使用 NSCoding 从以前的保存创建游戏时,会出现我的问题。在这两种情况下(新游戏和从保存游戏继续),物理主体都是相同的 - 动态、相同大小的主体、相同的 contactTestBitMask、相同的 categoryBitMask。我已经测试了所有这些,所以我知道这是真的。物理接触委托也设置为正确的对象。但是,在保存后继续进行的游戏中,未注册联系人,我无法弄清楚原因。我唯一能想到的,
任何帮助将非常感激
ios - 我在scenekit for iOS中编写了一个立方体在地板上滑动,但它沉入了地板
我目前有一个场景,其中一个立方体被放在场景包中的地板上。我为立方体设置了动画,使其在地板上的 x 轴上移动,当它移动时,它会稍微沉入地板,然后重新定位到地板的顶部。
这里只是一些代码:
有人可以帮我找出立方体下沉的原因吗?如果你不知道为什么,也许你可以提供一个角色可以走的工作地板的示例代码?(希望在目标 c 中,但如果需要,我可以从 swift 翻译)
swift - SpriteKit - 将点转换为场景坐标会给出错误的值
我想将单元格位置转换为场景的坐标。目前,该单元格是一个不可见节点的子节点。当细胞与病毒接触时,我得到细胞的位置。令人困惑的是,单元格相对于其父级的坐标以及坐标转换到场景时的位置是相同的。位置读数为 (0,0.002),但其实际位置应为 (0,50)。
如果我通过直接引用单元节点(例如childNodeWithName("cell")
)来监视位置,它会显示正确的位置。我最初认为这个问题与向下投射有关,但不管有没有它,位置都显示不正确。为什么会这样?
ios - 为什么定向精灵在“didEndContact()”中不起作用,但在“update()”中起作用
我的 GameScene 类中有以下代码,它将所有移动的精灵定向到它们前进的方向。如果从 update() 调用它可以完美地工作,但我不明白为什么从 didEndContact 调用它时它根本不起作用。
从 update() 调用的问题是,当场景转换开始时,不再调用更新(似乎)并且所有精灵都停止自我定位。我有很长的场景过渡,所以看起来很糟糕。
ios - Sprite Kit Physics:可以使用固定更新吗?
我有一个场景,我的场景中发生了固定更新。
每次更新,我想创建一个阴影,使用精灵先前的位置。
现在,当我对精灵施加脉冲时,我希望精灵增加相同的步数,而不管实际用于到达下一个更新帧的时间。
然而,情况并非如此,因为当比较我的模拟器上的阴影和我设备上的阴影时,两者之间的距离是非常不同的。
EG 我的手机花了 1 秒来移动精灵 60 步 我的模拟器花了 2 秒来移动精灵 60 步
在固定更新世界中。两者都花了 60 帧来实现,模拟器只是落后了。
然而,实际结果将使模拟器处于 120 步
我尝试禁用asynchronous
,SKView
希望可以让我得到修复更新,但这让我无处可去,所以我问是否有人知道如何让 SKPhysics 在修复更新框架上工作。