首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >和引擎。粒子效果跟随精灵的速度太慢。如何减少延迟

和引擎。粒子效果跟随精灵的速度太慢。如何减少延迟
EN

Stack Overflow用户
提问于 2012-02-14 00:26:53
回答 1查看 1.5K关注 0票数 1

我使用的是跟随球的粒子系统。随着球的移动,粒子效果似乎跟在精灵后面太慢了。

我用这样的方式去清除粒子:

代码语言:javascript
复制
final CircleOutlineParticleEmitter ballEmitter = new CircleOutlineParticleEmitter(0, 0, 6);
final ParticleSystem particleBallSystem = new ParticleSystem(ballEmitter, 30, 30, 180, this.mParticleTextureRegion);

particleBallSystem.addParticleInitializer(new ColorInitializer(0, 0, 1));
particleBallSystem.addParticleInitializer(new AlphaInitializer(1));
particleBallSystem.setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE);
particleBallSystem.addParticleInitializer(new VelocityInitializer(-2, 2, -2, 3));
particleBallSystem.addParticleInitializer(new RotationInitializer(0.0f, 180.0f));

particleBallSystem.addParticleModifier(new org.anddev.andengine.entity.particle.modifier.ScaleModifier(1.0f, 1.2f, 0, 5));
particleBallSystem.addParticleModifier(new ColorModifier(0, 0, 0.2f, 0.1f, 0, 1, 1, 3));
particleBallSystem.addParticleModifier(new ColorModifier(0, 0, 0.1f, 0.2f, 1, 1, 4, 6));
particleBallSystem.addParticleModifier(new AlphaModifier(0, 1, 0, 1));
particleBallSystem.addParticleModifier(new AlphaModifier(1, 0, 5, 6));
particleBallSystem.addParticleModifier(new ExpireModifier(1, 6));

并在触摸事件中设置中心(在触摸移动时):

代码语言:javascript
复制
ballEmitter.setCenter(newX-15, newY);

有没有办法减少粒子系统的延迟?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-19 07:30:11

扩展PhysicsConnector类并覆盖onUpdate方法。在更新方法中设置发射器的中心。因此,每次Sprite的位置更新为身体的值时,发射器位置都会更新。

代码语言:javascript
复制
class MyPhysicsConnector extends PhysicsConnector
{
    public MyPhysicsConnector(IAreaShape pAreaShape, Body pBody, boolean pUdatePosition, boolean pUpdateRotation)
    {
        super(pAreaShape, pBody, pUdatePosition, pUpdateRotation);
    }

    @Override
    public void onUpdate(float pSecondsElapsed)
    {
        super.onUpdate(pSecondsElapsed);

        final IShape shape = this.mShape;

        ballEmitter.setCenter(shape.getX(), shape.getY());
    }
}

确保在将球的主体连接到它的精灵时,传入一个MyPhysicsConnector实例

代码语言:javascript
复制
physicsWorld.registerPhysicsConnector(new MyPhysicsConnector(ballSprite, ballBody, true, true));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9264087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档