Ich habe ein libGDX-Spiel, in dem ich mit Partikeln einen Eisatem-ähnlichen Effekt erzielen möchte. Bisher haben wir einen kegelförmigen Effekt erzielt. Ich kann es damit erhalten und auf dem Bildschirm rendern.
ParticleEffectPool.PooledEffect effect = breathPool.obtain();
effect.setPosition(x,y);
ps.add(effect);
Aber ich sehe keine Möglichkeit, das gesamte Partikelsystem in eine bestimmte Richtung zu drehen . Gibt es eine Möglichkeit, dies zu erreichen?
Antworten:
Sie können versuchen, die
angle
Eigenschaft Ihres Emitters (oder der Emitter, wenn Sie viele haben) auszuwählen und die Werte manuell so anzupassen, dass sie um einen bestimmten Winkel zentriert werden.Beachten Sie, dass die oben würde nur einstellen , was die hohe und niedrige , und Sie werden wahrscheinlich Notwendigkeit, etwas dagegen zu umwickeln.
quelle
targetAngle
in setHigh () und setLow () verwenden, haben aber vergessen ... und Sie haben einen Tippfehler in getLowMin (). Funktioniert sonst gut.Hier ist meine eigene Lösung für 90 ° -Drehungen:
Mit dieser Lösung können Sie nicht mit einem beliebigen Winkel drehen. Wenn Sie möchten, müssen Sie die X- und Y-Offsets mit einer Drehung anpassen.
offsetY = originalOffsetY * sin(angle)
und das gleiche für X mitcos()
. Ich habe die vollständige Lösung für keinen Winkel implementiert, weil ich sie nicht brauchte. Ich kann jedoch bestätigen, dass diese einfachere Lösung für mich funktioniert.quelle
Fügen Sie den Partikeleffekt einer Gruppe mit aktivierter Transformation hinzu (Standard).
quelle