- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图避免英雄和硬币之间的碰撞,但不是英雄和草地之间的碰撞。一旦我将碰撞位掩码应用于 Hero,我的 Hero 就会穿过所有东西。我希望它穿过硬币而不是穿过草地。这是代码,有什么想法吗?
let HEROCATEGORY: UInt32 = 0x1 << 1;
let GROUNDCATEGORY: UInt32 = 0x1 << 2;
let FIRECATEGORY: UInt32 = 0x1 << 3;
let COINCATEGORY: UInt32 = 0x1 << 4;
let NUMBERCATEGORY: UInt32 = 0x1 << 5;
heroSprite.physicsBody!.categoryBitMask = HEROCATEGORY;
heroSprite.physicsBody!.collisionBitMask = 0x10000000;
heroSprite.physicsBody!.contactTestBitMask = GROUNDCATEGORY | FIRECATEGORY | COINCATEGORY | NUMBERCATEGORY;
grassGround.physicsBody!.categoryBitMask = GROUNDCATEGORY;
grassGround.physicsBody!.collisionBitMask = 0x01000000;
coinSprite.physicsBody!.categoryBitMask = COINCATEGORY;
coinSprite.physicsBody!.contactTestBitMask = HEROCATEGORY;
coinSprite.physicsBody!.collisionBitMask = 0x10000000;
最佳答案
如果英雄只需要检测与地面的碰撞,那么英雄的碰撞位掩码应该是
heroSprite.physicsBody?.collisionBitMask = GROUNDCATEGORY
要检测与地面和其他物体的碰撞,您应该使用 OR |
运算符 组合两个 categoryBitMasks
heroSprite.physicsBody?.collisionBitMask = GROUNDCATEGORY | SOMETHINGCATEGORY
contactTestBitMask
用于获取两个主体之间接触时的回调。当两个对象共享同一空间时,我们会收到回调。它不处理碰撞。
我认为您需要的是火和硬币的接触检测以及与地面的碰撞检测。因此,只需将 heroSprite
的碰撞位掩码设置为 GROUNDCATEGORY
,就像我的第一个代码片段中那样。
let HEROCATEGORY: UInt32 = 0x1 << 1
let GROUNDCATEGORY: UInt32 = 0x1 << 2
let FIRECATEGORY: UInt32 = 0x1 << 3
let COINCATEGORY: UInt32 = 0x1 << 4
let NUMBERCATEGORY: UInt32 = 0x1 << 5
heroSprite.physicsBody!.categoryBitMask = HEROCATEGORY
heroSprite.physicsBody!.collisionBitMask = GROUNDCATEGORY // changed
heroSprite.physicsBody!.contactTestBitMask = GROUNDCATEGORY | FIRECATEGORY | COINCATEGORY | NUMBERCATEGORY
grassGround.physicsBody!.categoryBitMask = GROUNDCATEGORY
grassGround.physicsBody!.collisionBitMask = HEROCATEGORY
coinSprite.physicsBody!.categoryBitMask = COINCATEGORY
coinSprite.physicsBody!.contactTestBitMask = HEROCATEGORY
关于ios - Collision Bitmask Hero 穿过一切,甚至是地面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28491427/
我想做同样的事情:(没有复制球体) http://people.mozilla.org/~sicking/webgl/ray.html 我做到了,它有效,但反射太大:/ var groundTextu
我知道做水平和垂直卷轴游戏(如马里奥),在这种游戏类型中,角色与用户的距离始终相同。字符仅在水平滚动条中左右移动,在垂直滚动条中上下移动。 但有些 2D 游戏中的角色可以在场景中自由移动,例如图形冒险
如何从 bigcommerce API(Ground、Express)获取订单“运输方式”? 客户下单时选择的送货方式。 谢谢 最佳答案 请参阅此 page , 获取特定订单的运输相关数据。 关于bi
我需要一个 C# 函数来执行以下操作:从 gps 点 A 向 gps 点 B 的方向移动 50 米,并计算该点的 GPS 坐标。 例如我有两个坐标: LatLon LatLonA = new LatL
我是一名优秀的程序员,十分优秀!