1

我正在使用 CCParticleSystemQuad 在 Cocos2d 中创建粒子效果。现在我想测试每个粒子是否与 CCRect 发生碰撞。如何在粒子引擎中获取每个粒子的位置以便我可以做到这一点?

任何帮助或示例将不胜感激。我在网上找了几个小时,希望能找到这方面的教程。我很惊讶我找不到太多,因为我认为与粒子的碰撞是必不可少的。也许我没有找对地方:)

4

2 回答 2

4

创建 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
于 2011-06-28T04:40:59.203 回答
0

尝试类似的东西

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,所以对这个答案持保留态度。

于 2011-06-28T04:02:26.877 回答