0
我想創建一個黑色的矩形,當我的應用程序完成某個動作時會淡入,但我似乎無法找到一種方法來做到這一點。我創建了一個擴展Scene2D的演員一個新的Rectangle類,這是它的外觀:如何使一個「手工製作」的演員褪色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());
}
}
問題是,當我繪製矩形,我必須設定一個恆定parentAlpha。如果我撥打:
rectangle.addAction(alpha(0.5f));
它不會做任何事情,因爲alpha不會改變。有沒有辦法做到這一點,而沒有一個固定的parentAlpha?
我知道這聽起來很奇怪,但是有可能在不將矩形添加到舞臺的情況下實現這一點? – vladutelu
如果你不想添加到Stage中,你爲什麼要把Rect作爲'Actor'?你想如何手動繪製你的'Actor'而不是通過Stage的'draw()'方法。最好創建一個'Sprite'對象而不是'Actor',它也有自己的顏色,並根據一些時間邏輯計算手動改變他的alpha值。詢問如果你需要幫助。 – Aryan
我正在創建它作爲演員,因爲演員api已經有淡入,淡出等內置動作,並節省了我一些時間。我不知道如何創建自己在指定時間內完成的動作 – vladutelu