我正在使用 CCParticleSystemQuad 在 Cocos2d 中创建粒子效果。现在我想测试每个粒子是否与 CCRect 发生碰撞。如何在粒子引擎中获取每个粒子的位置以便我可以做到这一点?
任何帮助或示例将不胜感激。我在网上找了几个小时,希望能找到这方面的教程。我很惊讶我找不到太多,因为我认为与粒子的碰撞是必不可少的。也许我没有找对地方:)
我正在使用 CCParticleSystemQuad 在 Cocos2d 中创建粒子效果。现在我想测试每个粒子是否与 CCRect 发生碰撞。如何在粒子引擎中获取每个粒子的位置以便我可以做到这一点?
任何帮助或示例将不胜感激。我在网上找了几个小时,希望能找到这方面的教程。我很惊讶我找不到太多,因为我认为与粒子的碰撞是必不可少的。也许我没有找对地方:)
创建 CCParticleSystemQuad 的子类并覆盖 update: 方法或 updateQuadWithParticle:newPosition: 方法。
@interface MyParticleSystem : CCParticleSystemQuad
@end
@implementation MyParticleSystem
- (void)updateQuadWithParticle:(tCCParticle*)particle newPosition:(CGPoint)pos
{
/* use pos */
[super updateQuadWithParticle:particle newPosition:pos];
}
@end
编辑:
您可以为粒子设置任何数据(位置、颜色等),如下所示。
@interface MyParticleSystem : CCParticleSystemQuad
@end
@implementation MyParticleSystem
- (void)update:(ccTime)dt
{
/* implement as cocos2d/CCParticleSystem.m -update: */
}
@end
尝试类似的东西
CCParticleSystemQuad* particle_system = ...;
for(int i = 0; i < particle_system->particleCount; i++)
{
particle_system->particles[idx]->pos; // Here is your position
}
接口的头文件在这里: http: //www.cocos2d-iphone.org/api-ref/latest-stable/_c_c_particle_system_8h_source.html
警告:因为我不使用 Cocos2d 或 Objective-C,所以对这个答案持保留态度。