In LibGDX Gibt es einen Schauspieler, der animiert ist (nimmt eine Animation) und wenn er zu einer Bühne hinzugefügt wird, animiert sich selbst oder musst du deine eigene Image-Klasse selbst implementieren und animieren?LibGDX gibt es einen Schauspieler, der animiert ist?
11
A
Antwort
9
Genau wie ich Sie nicht animierte Schauspieler gefunden, so habe ich mich:
AnimatedActor.java:
public class AnimatedActor extends Image
{
private final AnimationDrawable drawable;
public AnimatedActor(AnimationDrawable drawable)
{
super(drawable);
this.drawable = drawable;
}
@Override
public void act(float delta)
{
drawable.act(delta);
super.act(delta);
}
}
AnimationDrawable.java:
class AnimationDrawable extends BaseDrawable
{
public final Animation anim;
private float stateTime = 0;
public AnimationDrawable(Animation anim)
{
this.anim = anim;
setMinWidth(anim.getKeyFrameAt(0).getRegionWidth());
setMinHeight(anim.getKeyFrameAt(0).getRegionHeight());
}
public void act(float delta)
{
stateTime += delta;
}
public void reset()
{
stateTime = 0;
}
@Override
public void draw(SpriteBatch batch, float x, float y, float width, float height)
{
batch.draw(anim.getKeyFrame(stateTime), x, y, width, height);
}
}
17
ich einfach ein erstellt " AnimatedImage "actor-Klasse, die nur eine Animation als Argument akzeptiert (keine Notwendigkeit für eine benutzerdefinierte Drawable-Klasse). Ich denke, diese Lösung ist viel einfacher als die obige.
AnimatedImage.java:
public class AnimatedImage extends Image
{
protected Animation animation = null;
private float stateTime = 0;
public AnimatedImage(Animation animation) {
super(animation.getKeyFrame(0));
this.animation = animation;
}
@Override
public void act(float delta)
{
((TextureRegionDrawable)getDrawable()).setRegion(animation.getKeyFrame(stateTime+=delta, true));
super.act(delta);
}
}
Verwandte Themen
- 1. Animate Zugabe Schauspieler in Libgdx
- 2. Wie tausche ich Schauspieler in libgdx
- 3. libgdx: Warum rendern alle meine Schauspieler nicht, wenn ich einen Schauspieler mit Shaperrenderer hinzufüge?
- 4. Gibt es in Akka leichte Schauspieler?
- 5. Wie mache ich eine Schaltfläche, die Schauspieler direkt erweitert? Libgdx
- 6. Erstellen Sie einen Schauspieler
- 7. Beispiel für Regisseur, Bühne, Gruppe, Schauspieler, Box2D und GestureDector LibGdx
- 8. Wie teste ich einen Akka-Schauspieler, der eine Nachricht an einen anderen Schauspieler sendet?
- 9. gibt es irgendeine Scala-Netzwerk-Bibliothek mit Schauspieler Modell
- 10. Libgdx Sound, wenn es fertig ist
- 11. libGdx: Sprite wird nicht gezeichnet, wenn es eine Bühne gibt
- 12. Gibt es einen Delegaten, der kein MulticastDelegate in C# ist?
- 13. Gibt es einen Java-Bytecodeleser, der in Javascript implementiert ist?
- 14. Schauspieler Schauspieler Sender() selbst zurück, wenn sie von der WebSocket Schauspieler
- 15. Ist es eine schlechte Übung, einem Schauspieler eine Nachricht von etwas zu schicken, das kein Schauspieler ist?
- 16. Ist es möglich, ein Tupel innerhalb Schauspieler ohne Warnung
- 17. akka einen Verschluss zu entfernten Schauspieler Senden
- 18. Akka Schauspieler Kind mit Eltern Schauspieler Referenz
- 19. Gibt es einen Identitätskanal?
- 20. Android animiert Alpha nicht, wenn es anfänglich null ist
- 21. So finden Sie einen Schauspieler in Caf
- 22. Gibt es einen Vim, der Bash '! $' Entspricht?
- 23. Gibt es einen dereference_iterator in der STL?
- 24. Libgdx Schrift ist verschwommen
- 25. Wie kann man Schauspieler erweitern und auf der Bühne zeichnen? Libgdx
- 26. Gibt es einen Namespacing der Datenbanktabelle?
- 27. Gibt es eine Möglichkeit, Vektorgrafiken in die LibGDX-Entwicklung einzubinden?
- 28. Was ist der beste Weg, um einen Schauspieler aus der Datenbank zu initialisieren
- 29. Ist es möglich, eine Linie mit SpriteKit animiert zu zeichnen?
- 30. jQuery animiert() Funktion animiert nicht
Ich habe etwas ähnliches. Ich werde warten und sehen, ob jemand auf eine tatsächliche Schauspieler Klasse hinweisen kann, aber wenn nicht, werde ich dies als die Antwort markieren. – Lokiare
Vielen Dank für Ihr Schnipsel, lieber Herr. –
Dies scheint ein wenig langsamer als "direkte" Ansatz: TextureRegion frame2 = bird_07.getKeyFrame (stateTime, true); stage.getSpriteBatch(). Begin(); stage.getSpriteBatch(). Draw (currentFrame, 1000, 700); irgendeine Idee warum? – atok