Ich versuche ein schwarzes Rechteck zu erstellen, das eingeblendet wird, wenn eine bestimmte Aktion in meiner Anwendung ausgeführt wird, aber ich kann keinen Weg finden, es zu tun. Ich habe eine neue Rectangle-Klasse, die Scene2D der Schauspieler und das ist erweitert, wie es aussieht:Wie man einen "handgemachten" Schauspieler verblassen lässt LibGDX
public class Rectangle extends Actor{
private Texture texture;
public Rectangle(float x, float y, float width, float height, Color color) {
createTexture((int)width, (int)height, color);
setX(x);
setY(y);
setWidth(width);
setHeight(height);
}
private void createTexture(int width, int height, Color color) {
Pixmap pixmap = new Pixmap(width, height, Pixmap.Format.RGBA8888);
pixmap.setColor(color);
pixmap.fillRectangle(0, 0, width, height);
texture = new Texture(pixmap);
pixmap.dispose();
}
@Override
public void draw(Batch batch, float parentAlpha) {
Color color = getColor();
batch.setColor(color.r, color.g, color.b, color.a * parentAlpha);
batch.draw(texture, getX(), getY(), getWidth(), getHeight());
}
}
Das Problem ist, wenn ich das Rechteck zu zeichnen, ich habe eine konstante parentAlpha einzustellen. Wenn ich anrufe:
rectangle.addAction(alpha(0.5f));
Es wird nichts tun, weil das Alpha sich nicht ändert. Gibt es eine Möglichkeit, es ohne feste Eltern Alpha zu tun?
Ich weiß, es klingt komisch, aber ist es möglich, dies zu erreichen, ohne das Rechteck auf eine Bühne hinzufügen? – vladutelu
Warum machst du dein Rect als 'Actor', wenn du nicht in die 'Stage' einfügen willst? Wie Sie Ihren 'Actor' manuell nicht durch Stages' draw() 'Methode zeichnen wollen. Es ist besser, ein "Sprite" -Objekt anstelle von "Actor" zu erstellen, das auch eine eigene Farbe hat und seinen Alpha-Wert manuell entsprechend der logischen Berechnung ändert. Fragen Sie, wenn Sie Hilfe benötigen. – Aryan
Ich erschaffe es als Schauspieler, weil der Schauspieler api bereits die eingebauten Aktionen für Einblenden, Ausblenden usw. hat und es spart mir etwas Zeit. Ich weiß nicht, wie ich eine Aktion erstellen soll, die in einer bestimmten Zeit von mir selbst ausgeführt wird. – vladutelu