我正在制作一个游戏,其中我有一个被创建为SKSpriteNode的球,它与一些我不想碰撞的物体发生碰撞。这是我的球:
orangeBall = OrangeBall(path: ballTrajectory, color: UIColor.orange, borderColor: UIColor.black)
orangeBall.physicsBody = SKPhysicsBody(circleOfRadius: Physics.PhysicsNumbers.ballRadius)
orangeBall.position = Physics.PhysicsNumbers.ballRestPos
orangeBall.physicsBody?.categoryBitMask = CollisionsChecker.Ball
orangeBall.physicsBody?.collisionBitMask = CollisionsChecker.Frame | CollisionsChecker.Box | CollisionsChecker.Score
orangeBall.physicsBody?.contactTestBitMask = CollisionsChecker.Frame | CollisionsChecker.Box | CollisionsChecker.Score
orangeBall.physicsBody?.isDynamic = false
orangeBall.physicsBody?.affectedByGravity = false
addChild(orangeBall)
我希望它检测到它已经与这个分数物理体接触,但实际上并没有碰撞:
score = NetBoxes(path: scoreStationary, color: UIColor.red, borderColor: UIColor.red)
score.position = Physics.PhysicsNumbers.scoreRest
score.physicsBody = SKPhysicsBody(circleOfRadius: 50)
score.physicsBody?.categoryBitMask = CollisionsChecker.Score
score.physicsBody?.contactTestBitMask = 0
score.physicsBody?.collisionBitMask = CollisionsChecker.Ball
score.physicsBody?.affectedByGravity = false
score.physicsBody?.isDynamic = false
addChild(score)
(circleOfRadius仅用于测试目的)每次我尝试检查碰撞时,它似乎都没有输出我希望它执行的操作:
func didBegin(_ contact: SKPhysicsContact){
let firstBody = contact.bodyA
let secondBody = contact.bodyB
if firstBody.categoryBitMask == CollisionsChecker.Ball && secondBody.categoryBitMask == CollisionsChecker.Score || firstBody.categoryBitMask == CollisionsChecker.Score && secondBody.categoryBitMask == CollisionsChecker.Ball{
print("Ball in hoop")
}
本质上,我的橙色球是一个SKSphapeNode,它总是与我的分数物理体相撞。也可能是我球周围的两个物理体和分数都接触到了。我不知所措,任何帮助都将不胜感激!
我已经弄清楚了。我在代码后面为我的橙色球重新创建了一个物理体。在它周围形成另一个物理体,使它与我的其他节点相撞!
当我在中创建一个场景时,我经常需要两个节点在完全相同的或位置来创建一面墙。我添加了矩形物理体。它们都没有任何摩擦。 当我使一个spritendode在这些碰撞体上移动时(我对物理体使用冲量),它的行为就像在两个矩形之间有一个屏障,我需要“推”节点或使其跳过边界。正如我所说的,这些节点彼此完全一致,因此节点应该能够平滑地通过它们。 有什么建议吗? 如果你需要我正在使用的任何代码/图片,请询问。 编辑
本章节主要介绍 2D 物理与碰撞系统,3D 相关的部分请参考 3D 物理与碰撞系统。 Creator 里的 2D 物理与碰撞系统包括两个部分: 碰撞系统 Box2D 物理引擎 对于物理计算较为简单的情况,我们推荐用户直接使用碰撞组件,这样可以避免加载物理引擎并构建物理世界的运行时开销。而物理引擎提供了更完善的交互接口和刚体、关节等已经预设好的组件。可以根据需要来选择适合自己的物理系统。
问题内容: 我主要专注于图形方面,以创建一些2DGame。我看过/看过几本教程,但是没有一部教程那么令人满意。我已经有一个玩家(一个正方形)在屏幕上移动并与其他正方形碰撞。重力等。 如果在屏幕上看到的对象太多(30 * 20),则一切正常。但是,如果我将其增加到300 * 300,则该程序开始运行非常慢,因为它必须检查许多对象。 我真的不知道Minecraft之类的游戏如何与ALL THOSE块一
从 v2.3.0 开始,Cocos Creator 新增了对 3D 物理与碰撞系统的支持。 Creator 的 3D 物理引擎基于 cannon.js 实现,提供了高效的组件化工作流程和便捷的使用方法。目前支持了刚体、Box/Sphere 碰撞组件、触发和碰撞事件、物理材质、射线检测等特性。 而 3D 碰撞检测系统 Builtin 是只有碰撞检测系统的物理模块。它没有复杂的物理模拟计算,这将使得游
我最近开始使用Libgdx进行开发。现在,我正在研究自定义形状的碰撞检测。就我而言,我想检测鲨鱼与其他物体的碰撞。由于鲨鱼是一种自定义形状,我使用了Physics Body Editor(https://code.google.com/p/box2d-editor/downloads/detail?name=physics-车身编辑器-2.9.2.zip 我已经有了鲨鱼和其他东西的图像绘制的代码,
好的,所以我对精灵工具包相当陌生,我在Swift中工作。我有2个精灵节点,和。有一个物理体,这就是我设置它的方式: 目前没有物理实体: 我需要知道如何在这些对象之间进行碰撞检测(即,如果救世主和小鸡接触,则执行此操作),最好不要使成为物理体。 当我把鸡做成一个物理物体时,它突然变得不稳定,并移动其他物体。 如果没有物理学就无法进行碰撞检测,我怎样才能使成为不受任何影响的物理体,并且直接穿过其他物理