当前位置: 首页 > 面试题库 >

使组将Actor隐藏在其边界之外

任昊阳
2023-03-14
问题内容

我创建了一个非常简单的图,可以通过在屏幕的右侧添加新图像,然后使它们向左侧移动来动态更新。这样,屏幕范围内的绘图就好像随着时间的流逝而绘制一样。

不幸的是,以这种方式执行操作时,我必须让图像从屏幕外开始并进入视图,并且在图像完全位于屏幕的左侧之前,我无法再次将其删除。这导致图像在屏幕边界之外部分可见。

控件创建为Group,其中包含两个静态图像(黑色背景,屏幕图像作为前景),以及介于两者之间的所有运动图像。这Group是然后添加到我的Stage(像所有其他演员),并绘制成的一部分Stage。

在下图中,控件的边界标记为红色。我想隐藏运动图像中超出这些范围的部分。使用我错过的某些libGDX功能可以做到这一点吗?通过某种方式限制小组的绘图区域?

屏幕的工作方式说明。

我的其他替代方法是在屏幕前面绘制蓝色背景的一部分,以隐藏离群值,或者使屏幕的边缘足够厚以隐藏它们。我认为这两种解决方案都不必要地带来不便,而且我敢肯定,有更好的方法可以做到这一点。

有什么建议么?


问题答案:

解决方案是使用ScissorStack。

@Override
public void draw(SpriteBatch batch, float parentAlpha) {

    //Create a scissor recangle that covers my Actor.
    Rectangle scissors = new Rectangle();
    Rectangle clipBounds = new Rectangle(getX(),getY(),getWidth(),getHeight());
    ScissorStack.calculateScissors(camera, batch.getTransformMatrix(), clipBounds, scissors);
    batch.flush(); //Make sure nothing is clipped before we want it to.
    ScissorStack.pushScissors(scissors);

    //Draw the actor as usual
    super.draw(batch, parentAlpha);

    //Perform the actual clipping
    ScissorStack.popScissors();
}


 类似资料:
  • 我需要在对话框中显示菜单。然而,当JPopupMenu隐藏在边框中时,当barder插入很大时。 上面的代码创建了一个对话框,当点击按钮时,菜单应该会出现,但它会隐藏在边框内。像这样 如果边框的插入被更改,因为时,菜单会显示,不会有任何问题。像这样

  • 我试图隐藏一些传单功能以外的定义区域。 我有一张传单地图,显示河流作为河流层的特征,还有一个圆圈,用于在地图的当前中心周围绘制一个区域。 在我的数据库中,每条河流被分成多个部分,我只检索与当前圆形区域相交的部分。 计算每个有关部分的交点以调整坐标将是一个解决方案,但是一个复杂的问题。 事实上,我更愿意简单地在客户端隐藏这些溢出,但我找不到解决方案。 传单有可能做这样的事情吗? 谢谢你的时间

  • 问题内容: 我们现在在使用React时遇到了一些问题,但这 有点 归结于我们如何使用React的一部分。 我们应该如何显示/隐藏子组件? 这就是我们的编码方式(这只是组件的片段)… 最近,我一直在阅读一些示例,例如应该沿着以下方向进行: 我应该一直在使用那个React.render()吗?似乎停止了各种各样的事情,如级联到孩子和诸如… 问题答案: 我提供了一个工作示例,它遵循您的第二种方法。更新组

  • 感性认识 界面介绍,viewer Geocoder : 查找位置工具,查找到之后会将镜头对准找到的地址,默认使用bing地图 Home Button :视角返回初始位置. Scene Mode Picker : 选择视角的模式,有三种:3D,2D,哥伦布视图(CV) Base Layer Picker : 图层选择器,选择要显示的地图服务和地形服务. Navigation Help Button

  • 如果侧边栏中没有内容,我想隐藏它们,不幸的是,有26.000个函数可以调用你的侧边栏,我对此并不感兴趣。我只想隐藏我的侧边栏,如果它们是空的,当它们包含小部件时显示它们。 现在我不确定是应该使用get_sidebar函数还是dynamic_sidebar函数。另外,我想知道我是否应该使用侧边栏的名称。php调用它或函数中的ID。php

  • 如何隐藏gg-editor边箭头?