什么是Sprite Kit相当于Box2D传感器主体?

rom*_*mox 5 box2d sprite-kit

我需要模拟一个风扇.在Box2D中,我通过使用传感器主体来实现这一点.我没有在SK中发现任何类似的东西.我错了.有什么建议?非常感谢!

god*_*el9 3

如果您想要创建一个将导致接触通知但不会发生冲突的主体,则可以使用categoryBitMaskcollisionBitMaskcontactTestBitMask属性:

选择一个位来代表传感器类别:

#define kSensorCategoryBit (0)                         // Pick your own bit here
#define kSensorCategory    (1 << (kSensorCategoryBit))
Run Code Online (Sandbox Code Playgroud)

设置传感器主体的属性:

sensorBody.categoryBitMask    = kSensorCategory; // Set sensor category bit
sensorBody.collisionBitMask   = 0x00000000;      // Prevent all collisions
sensorBody.contactTestBitMask = 0x00000000;      // Prevent contacts between sensors
Run Code Online (Sandbox Code Playgroud)

设置您想要通知的其他实体的属性:

otherBody.contactTestBitMask |= kSensorCategory; // Set sensor category bit
Run Code Online (Sandbox Code Playgroud)

设置物理世界的接触委托:

scene.physicsWorld.contactDelegate = contactDelegate;
Run Code Online (Sandbox Code Playgroud)

实现对象的联系委托方法contactDelegate

- (void)didBeginContact:(SKPhysicsContact *)contact
- (void)didEndContact:(SKPhysicsContact *)contact
Run Code Online (Sandbox Code Playgroud)

请参阅 Apple 的文档SKPhysicsContact以获取更多信息。希望有帮助...