android - Libgdx:在特定矩形中绘制 Actor

标签 android libgdx drawing

我试图在舞台上绘制一个 Group Actor,但我只需要在舞台的特定区域绘制它们。

例如假设我把舞台分成两部分(左和右),然后我想只在舞台的左边画一些 Actor ,所以如果其中一个走到右边就不会了绘制。

到目前为止,我尝试使用setCullingArea 方法,但是Actors 突然消失了,如果它在限制范围内,我想绘制一个actor 的一部分。

换句话说,我正在寻找一种绘制了 Group 的 mask 区域。

谢谢。

最佳答案

您可以使用剪刀将绘图剪到屏幕的特定区域。

Rectangle leftSide;
Rectangle rightSide;

//...

public void resize(int width, int height){
    //...

    leftSide = new Rectangle(0,0,width/2, height);
    rightSide = new Rectangle(width/2, 0, width/2, height);

}

public void render(){
    //...

    Gdx.gl.glEnable(GL20.GL_SCISSOR_TEST);
    Gdx.gl.glScissor((int)leftSide.x, (int)leftSide.y, (int)leftSide.width, (int)leftSide.height);

    //Draw stage with left side actors (set right group invisible)
    //...

    Gdx.gl.glScissor((int)rightSide.x, (int)rightSide.y, (int)rightSide.width, (int)rightSide.height);

    //Draw stage with right side actors (set left group invisible)
    //...

    Gdx.gl.glDisable(GL20.GL_SCISSOR_TEST);

    //...
}

如果您有其他 actors 需要跨越边界,您可以在启用剪切之前先绘制它们,然后将它们设置为不可见。

关于android - Libgdx:在特定矩形中绘制 Actor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24817938/

相关文章:

安卓升级 2.3 -> 4.4 : Canvas path drawing not working/changed

Android:如何让自定义 View 部分重绘?

java - ExpandableView 上的错误没有出现任何内容

android - 在 Android 中以编程方式更改语言

android - RTL 安卓 :hint in TextInputLayout

ios - libGDX、RoboVM - 如何编辑 Obj-C 代码?

java - 将 JLabel 与 libgdx 的像素图一起使用

java - libGDX 对 SpriteBatch 中的默认顶点着色器抛出错误

C# 绘图 - 最佳解决方案

android 可扩展 ListView 从子 onclick 监听器获取组 View