问题标签 [skphysicsbody]
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.
ios - 我可以在 SpriteKit 中减慢或停止物理吗?
在我看来,一个旨在简单的框架会有这样的方法,而不是像我现在正在做的那样从物理核算中删除每个节点:
如果这是一个菜鸟问题,我很抱歉,我刚刚开始使用 SpriteKit。谢谢!
objective-c - 如何通过使用 applyImpulse 遵循自定义贝塞尔路径将节点从 A 点移动到 B 点
我希望能够通过使用 SKPhysicsBody 的 applyImpulse 方法通过自定义贝塞尔路径将节点从 A 点移动到 B 点。我想使用 applyImpulse 的原因是因为它根据初始脉冲模拟了一个很好的自然运动(快速开始和减速)。似乎当一个对象通过 applyImpulse 施加脉冲时,它只会在与环境的摩擦导致其速度降低到零时才会停止。我希望它跟随我的路径并在最后停下来。我该怎么办?
ios - 未调用 SKPhysicsContactDelegate 协议方法
在我的 .h 文件中,我这样添加了委托:
在我的 .m 文件中,我有这个
我也有节点,它们有时会相互接触。他们正确设置了他们的物理身体属性,我似乎无法弄清楚问题所在。怎么了?谢谢!
ios - 设置physicsBody类别位掩码值
我在我的代码中声明了各种位掩码类别,如下所示:
使用这些类别,我的游戏运行良好。
但是,各种示例项目和教程定义位掩码值,如下所示:
问题
为什么使用这种方法(按位移位)来声明这些值?此外,哪种方法最适合声明这些值以及在联系委托中比较它们?
ios - SKPhysicBody 位置错误
我正在创建一个简单的 Sprite Kit 游戏,但是当我将 PhysicsBody 添加到我的一个精灵时,它似乎处于错误的位置。我知道它在我设置的错误位置,
skView.showsPhysics = YES;
并且它出现在错误的位置。
底角的正方形是第一个半圆的物理体。我现在使用正方形只是为了测试目的。
我的应用程序包括视图跟随并在移动时跟随我的主要精灵。我通过遵循苹果文档并创建一个“myworld”节点并从该节点创建所有其他节点来实现这一点。
为了以节点为中心,我调用这些方法
我不知道我的世界对 SkPhysics 的身体有什么影响……
ios - SpriteKit FPS 低,PhysicsBody 碰撞
在我的 SpriteKit 游戏中,我有许多随机排列的图块节点 (>100),我需要能够检测图块和角色节点之间的碰撞。为此,我使用 SKPhysicsBody。
我发现如果我启用 SKPhysicsBody 代码,我的帧速率会下降到 40fps 左右,但如果我注释掉代码,它会上升到 60fps。我想这与试图为每帧 100 多个节点模拟物理的引擎有关……有没有办法可以防止这种情况发生但仍能检测到我的角色和瓷砖之间的碰撞?
对于瓷砖物理,我对瓷砖使用以下代码:
对于我的角色:
objective-c - 向 SKScene 添加边界
我正在尝试使用 Apple 的 Sprite Kit 框架编写一个基本游戏。到目前为止,我有一艘船在屏幕上飞行,使用 SKPhysicsBody。我想防止飞船飞出屏幕,所以我编辑了我的更新方法,使飞船的速度为零。这在大多数情况下都有效,但时不时地,飞船会飞出屏幕。
这是我的更新方法。
起初,我习惯于applyImpulse
把船didBeginContact
推回去。这使船反弹,但我不希望船反弹。我只想让它停在边缘。
一旦到达边缘,让船停下来的正确方法是什么?上面的代码在大多数情况下都可以正常工作,但船有时会从屏幕上射出。这适用于 OS X,而不是 iOS,以防万一。
ios - 无法缩放/缩放带有附加 SKPhysicsJoints 的 SKSpriteNode
我希望能够在我的游戏中“放大”和缩小,但是当我缩放父“世界”SKNode 时,关节不会相应地缩放,因为它们必须添加到 SKScene(这是根节点) .
改变 SKScene 的大小是可行的,但是我作为孩子的任何 HUD 图形都会随之缩放。
我曾考虑将我的 HUD 创建为 SKView 的子项,但这似乎与 Apple 的建议背道而驰。我也失去了使用 SKScene 转换的好处,并最终转而处理大量的 ViewController。
关于如何缩放 SKSpriteNode 并使其关节随之缩放的任何建议?
ios - SKPhysicsBodies 之间的碰撞被忽略
我在我的应用程序中使用精灵套件进行物理和碰撞检测。
我有一些球掉进一个盒子里。盒子的内部是使用 bodyWithPolygonFromPath 定义的
我往盒子里扔了一些球,它们直接掉了下来。
这是定义框的代码
SKShapeNode 的最后一位只是为了调试目的绘制了框的轮廓。绘制的框是我期望碰撞框所在的位置。
这是我放入盒子中的球的代码。
上面代码片段中的所有 self 实例都是直接附加到 SKScene 的同一个 SKNode。
关于什么可能导致碰撞检测被忽略的任何建议?
ios - Sprite Kit 碰撞检测仅适用于左右屏幕边缘
所以我希望我的英雄与屏幕的边缘发生碰撞,但只是与左右墙而不是底部或顶部。
到目前为止,我已经在我的-(id)initWithSize:(CGSize)size
:
我的英雄在他的方法中有这个:
到目前为止一切都很好,但由于整个屏幕是一个物理体,我的英雄会与所有边缘发生碰撞。任何想法如何让他与墙壁发生碰撞?
谢谢大家的帮助