【问题标题】:Libgdx ParticleEffect: There are no errors, but nothing is drawnLibgdx ParticleEffect:没有错误,但没有绘制任何内容
【发布时间】:2014-05-04 08:14:29
【问题描述】:

为什么这段代码不起作用。没有错误,但没有绘制任何内容。

render 方法包含:

    effect = new ParticleEffect();
    effect.setPosition(200, 200);
    effect.start();

    float delta = Gdx.graphics.getDeltaTime();
    GL10 gl = Gdx.app.getGraphics().getGL10();
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    spriteBatch.begin();

    effect.draw(spriteBatch, delta);

    spriteBatch.end();

【问题讨论】:

    标签: java libgdx


    【解决方案1】:

    如果您每帧都创建一个新效果,它永远不会移动或做任何事情,因为它会在每帧重置。您应该在循环之外创建效果。

    我不知道没有设置的粒子效果会如何。因此,您还应该尝试添加纹理并设置它的首选项。

    【讨论】:

    • 除非你用英文写,否则我帮不了你。
    【解决方案2】:

    我认为只为 ParticleEffect 创建构造函数是不够的,因此您必须使用您按以下方式创建的效果对象加载粒子效果文件。你也必须把这件事排除在外。

    effect.load(Gdx.files.internal("data/yellow_particle"), gdx.files.internal("数据"));

    【讨论】:

      【解决方案3】:

      运行一次:

      effect = new ParticleEffect();
      effect.load(Gdx.files.internal("path/to/your/particle.p", "directory/with/your/particle/png"));
      effect.setPosition(200, 200);
      effect.start();
      

      在渲染中运行:

      spriteBatch.begin();
      
      effect.draw(spriteBatch, delta);
      
      spriteBatch.end();
      

      并在处置:

      effect.dispose();
      

      Particle.png 可以从 libgdx 源复制,例如: https://github.com/libgdx/libgdx/blob/master/extensions/gdx-tools/assets/particle.png

      再看一遍视频教程 - 你搞砸了,错过了很多东西: http://www.youtube.com/watch?v=LCLa-rgR_MA

      教程本身包含的内容比视频少,但贴在这里希望它会更新: https://github.com/libgdx/libgdx/wiki/2d-particle-effects

      【讨论】:

        【解决方案4】:

        在类的构造函数中制作粒子效果。不要每次在您的渲染方法中制作粒子效果对象。这就是为什么,你的粒子效果每次都在初始化,你什么都看不到。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-02
          • 1970-01-01
          • 2011-06-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多