【问题标题】:Changing color and alpha of actor doesn't work in Scene2D更改演员的颜色和 alpha 在 Scene2D 中不起作用
【发布时间】:2014-12-02 12:21:03
【问题描述】:

在 Scene2D 中无法更改演员的颜色和 alpha; scaleTo, moveBy 工作。可能是什么问题?

@Override
public void render(float alpha){
     stage.act(delta);

     table.setTransform(true);
     //works
     table.addAction(Actions.scaleTo(2.3f, 2.5f, 2f)));
     //does not work
     table.addAction(Actions.alpha(0.2f, 2f));
     //does not work either
     table.addAction(Actions.color(new Color(1f,1f,1f, 0.2f), 2f));

     stage.draw();
}

【问题讨论】:

    标签: libgdx scene2d


    【解决方案1】:

    每次要渲染屏幕时都会调用方法render()。因此,您的代码从每一帧开始执行操作,并且没有任何变化。

    您应该将这些行从render() 方法移动到其他地方(例如移动到Screen 对象的show() 方法):

     table.setTransform(true);
     //works
     table.addAction(Actions.scaleTo(2.3f, 2.5f, 2f)));
     //does not work
     table.addAction(Actions.alpha(0.2f, 2f));
     //does not work either
     table.addAction(Actions.color(new Color(1f,1f,1f, 0.2f), 2f));
    

    【讨论】:

    • @gogonapel 我想你应该向我们展示其他 Actions 的代码,这似乎有效。无论如何,你不应该在render(delta) 中添加Actions,或者至少不要每次调用它,因为它每秒被调用很多次(如果你想要一个流畅的游戏,至少要调用30次)。
    猜你喜欢
    • 2014-03-28
    • 2017-04-11
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    相关资源
    最近更新 更多