我的粒子开始向上射击。但是,如果您使用右边的粒子来射击“咒语”,我想将整个发射器旋转-90度,以使其向右射击而不是向上。这该怎么做。这是我的拍摄权利,并且粒子向上爆炸,这很奇怪,所以如果我像下面的图像一样正确拍摄,我希望它以-90度角拍摄 最佳答案 您可以获取效果控制器并为其设置旋转。控制器本身就是发射器。此外,您可以通过在运行时设置旋转来旋转整个效果。用给定的四元数调用Effect.rotate(Quaternion rotation); (See this),您需要在actor中更新自己并调用旋转。但是旋转本身受控制器/发射器更新的影响!如果要旋转效果的一部分(例如不是全部1个或2个发射器),请使用findController(string name) klick here按名称(在GUI中设置)获得发射器,然后将旋转如上所述设置为。我几乎不建议不要使用向一个方向射击的效果!在Insead中,我将使用一个不会向一个方向移动的效果,然后将其移动到一个方向,最终效果相同,但是您可以偏向哪个方向。我的意思的小例子:public class SimpleRocket extends Firework { private ParticleEffect boom, thrust; private Vector2 direction; private boolean secondeffect = false; public SimpleRocket(FireworkTycoonMain main) { super(main); boom = new ParticleEffect(); boom.load(Gdx.files.internal("effect/firework.p"), main.manager.getAtlas()); thrust = new ParticleEffect(); thrust.load(Gdx.files.internal("effect/goldregen.p"), main.manager.getAtlas()); thrust.start(); } public void init(float mass, float acceleration, Vector2 startdirection, int flytime) { this.thrust.setDuration(flytime); this.mass = mass; this.acceleration = acceleration; direction = startdirection; direction.nor(); } @Override public void act(float delta) { final float alpha = direction.getAngleRad(); final float y = (float) (Firework.GRAVITY * mass + acceleration * Math.sin(alpha) * delta * delta); final float x = (float) (acceleration * Math.cos(alpha) * delta * delta + wind); direction.x = x; direction.y = y; direction.nor(); setPosition(getX() + x, getY() + y); boom.setPosition(getX(), getY()); thrust.setPosition(getX(), getY()); thrust.update(delta); boom.update(delta); if (thrust.isComplete() && !secondeffect) { main.sound.playPeng(); boom.start(); secondeffect = true; } } @Override public void draw(Batch batch, float alpha) { if (!boom.isComplete()) { boom.draw(batch); } if (!thrust.isComplete()) { thrust.draw(batch); } }}这个例子很旧,所以可能不适用于较新的libgdx版本。Controller如果您对效果进行广泛的模拟(而不是一点),它看起来可能像您的效果,但是您可以随意移动它。关于java - 在libgdx Java中运行时旋转粒子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33403520/ 10-13 09:54