我需要模拟一个风扇.在Box2D中,我通过使用传感器主体来实现这一点.我没有在SK中发现任何类似的东西.我错了.有什么建议?非常感谢!
如果您想要创建一个将导致接触通知但不会发生冲突的主体,则可以使用categoryBitMask、collisionBitMask和contactTestBitMask属性:
选择一个位来代表传感器类别:
#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以获取更多信息。希望有帮助...
| 归档时间: |
|
| 查看次数: |
606 次 |
| 最近记录: |