gpt4 book ai didi

java - LibGDX 粒子不显示

转载 作者:行者123 更新时间:2023-12-01 12:14:47 25 4
gpt4 key购买 nike

我在 libGDX 中遇到粒子问题。基本上它们根本不显示,我不知道为什么。

我使用 Scene2D 并创建了粒子 actor:http://wklej.org/id/1534258/

我这样创建它:particleTest = new ParticleEffectActor("test.p");

在我的游戏中,我有 2 个 GUI 阶段。我在屏幕的 show() 方法中向所有这些粒子添加了粒子:

menuStage.addActor(particleTest);
gameGuiStage.addActor(particleTest);

我的游戏还有另一个阶段(按 PixelPerMeter 值缩放)。我尝试像这样添加它: effect = new ParticleEffectActor("powerup.p");
gameWorld.getWorldStage().addActor(effect);

在这种情况下,我也尝试了一些定位技巧,但仍然没有效果。

出了什么问题?感谢您的帮助

最佳答案

我终于成功制作了一个工作版本:

这是一位 Actor ;

package com.apptogo.runner.actors;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.ParticleEffect;
import com.badlogic.gdx.scenes.scene2d.ui.Image;

public class ParticleEffectActor extends Image {

private ParticleEffect effect;

public ParticleEffectActor(String particleName) {
super();
effect = new ParticleEffect();
effect.load(Gdx.files.internal("gfx/game/particles/" + particleName), Gdx.files.internal("gfx/game/particles"));
this.setVisible(false);
}

@Override
public void scaleBy(float scaleFactor){
effect.scaleEffect(scaleFactor);
}

@Override
public void setPosition(float x, float y){
super.setPosition(x, y);
effect.setPosition(x, y);
}

public void start() {
effect.start();
}

@Override
public void act(float delta) {
super.act(delta);
effect.update(delta);
}

@Override
public void draw(Batch batch, float parentAlpha) {
super.draw(batch, parentAlpha);
effect.draw(batch);
}

public ParticleEffect getEffect(){ return this.effect; }
}

这就是我使用它的方式:

  effectActor = new ParticleEffectActor("test.p");
effectActor.scaleBy(1/PPM);
gameWorld.getWorldStage().addActor(effectActor);

effectActor.setPosition(getX() + getWidth()/2, getY() + getHeight()/2);

在act()中

关于java - LibGDX 粒子不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27083744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com