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

2023-11-22

我创建了一个非常简单的绘图,通过在屏幕右侧添加新图像,然后使它们向左侧移动来动态更新。这样,屏幕边界内的绘图看起来就像是随着时间的推移而绘制的。

不幸的是,当这样做时,我必须让图像从屏幕外部开始,然后进入视图,并且在它们完全位于左侧屏幕之外之前我无法再次将其删除。这会导致图像在屏幕边界之外部分可见。

该控件被创建为Group它包含两个静态图像(黑色背景和作为前景的屏幕图像),以及其间的所有移动图像。这Group然后添加到我的Stage(像所有其他演员一样),并作为Stage.

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

An illustration of how the screen works.

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

有什么建议么?


解决方案是使用剪刀栈.

@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();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使一个组将 Actor 隐藏在其边界之外 的相关文章

  • 当绑定属性更改时,ListView 分组不会更新

    我正在使用依赖项属性 GroupDescription 根据列表视图项目源的属性对 WPF 列表视图中的项目进行分组 我的问题是 仅当 GroupDescription 值更改时才会更新分组 而不是在列表视图源中项目的绑定属性更改后分组才会
  • Libgdx 模板和形状渲染器

    我正在尝试完成这样的事情 样本图像 https i stack imgur com CkdSO jpg 整个屏幕将是黑色的 然后三角形的内部是只会出现的部分 我尝试使用剪刀 但它是矩形的 原始图片来源 https www html5rock
  • 尝试在 Genymotion 上使用 libgdx 运行 Android 游戏

    有人对 libgdx 和 genymotion 有经验吗 我正在尝试让 libgdx 游戏在 genymotion Android 模拟器上运行 http www genymotion com http www genymotion com
  • libgdx 中帧缓冲区的结果不明确

    我得到以下奇怪的结果帧缓冲区 http libgdx badlogicgames com nightlies docs api com badlogic gdx graphics glutils FrameBuffer htmllibgdx
  • Ruby 中按身份分组

    鲁比的怎么样group by http ruby doc org core 2 2 3 Enumerable html method i group by方法按标识对数组进行分组 或者更确切地说self 其元素 a abccac chars
  • 如何在MySQL中选择每个组的第一行?

    在 C 中 它会是这样的 table GroupBy row gt row SomeColumn Select group gt group OrderBy row gt row AnotherColumn First Linq To Sq
  • 按日期顺序排列的 T-SQL 查询组(间隙和孤岛)

    我有一个这样的示例表 CREATE TABLE Aggregate vKey INT dKey INT StartTrip DATETIME EndTrip DATETIME Distance INT 像这样的一些样本数据 INSERT I
  • 使用 libgdx 裁剪图像

    I need to crop image like this 我需要从中心绘制部分图像 我知道有一个带有很多参数的批处理的draw 方法 但是没有关于所有这些参数的良好文档 所以我不知道如何使用它 这是我实现的 public class T
  • LibGdx 如何使用 OrthographicCamera 滚动?

    我已经找了 10 个小时 字面意思 我已经完成了 我需要问一下 事情是我正在学习如何使用 LibGdx 来编写 Java 游戏 我正在做一个水平太空飞船游戏 所以 我最糟糕的问题是我不知道如何滚动 我认为绘制会更好地解释 我想绘制一个巨大的
  • 在 box2d 主体顶部绘制字体

    如何在静态 box2d 主体顶部绘制文本 字体 背景 我能够正确地在身体顶部绘制精灵 我通过拥有一个来做到这一点box2dSpriteBatch像这样投影在 box2dCamera 上box2dSpriteBatch setProjecti
  • 分组和计数以获得接近值

    我想计算每country的次数status is open以及次数status is closed 然后计算closerate per country Data customer lt c 1 2 3 4 5 6 7 8 9 country
  • 按步长值变化对数组中的数字进行分组

    我有一个像 101 107 106 199 204 205 207 306 310 312 312 314 317 318 380 377 379 382 466 469 471 472 557 559 562 566 569 在这个数组中
  • 根据Python中的百分位数替换列值

    我已经对一个数据框进行了分组 并且我希望每组替换某些列中的值 如果它们小于某个百分位 因此 组中大于 0 95 百分位数的所有值均应替换为 0 95 百分位数 所有小于 0 05 百分位数的值均应替换为 0 05 百分位数 数据框可能看起来
  • 根据R中的行差异对行进行分组[重复]

    这个问题在这里已经有答案了 我有一组具有不同采样间隔的动物位置 我想要做的是采样间隔符合特定标准 例如低于特定值 的组和序列 让我用一些虚拟数据来说明 start lt Sys time timediff lt c rep 5 3 20 r
  • 计算列表中每个项目在 pandas 数据框列中出现的次数,并用逗号分隔值

    我有一个清单 citylist New York San Francisco Los Angeles Chicago Miami 和带有这些值的 pandas Dataframe df1 first last city email John
  • 将矩形分组到网格中

    我有一个随机切片的矩形网格 宽度为 80 单位 我已经将网格每一行的可用空间存储在如下数组中 pX 1 sX 15 pX 30 sX 13 pX 43 sX 1 pX 44 sX 17 pX 1 sX 15 pX 16 sX 14 pX 3
  • 将 Spritekit 游戏转换为 Android?

    是否有任何新选项可以将 spritekit 游戏转换为 Android 游戏 似乎唯一的选择是用 Java 重新编码所有内容或使用 Cocos2D LibGDX 等 很不幸的是 不行 而且带有 Apportable 服务的跨平台 Sprit
  • 有没有对数字(千)进行分组的函数?

    小 模块中是否隐藏着一个函数 它为我执行此操作 my var 23654325432 var reverse var var s d 3 K d g var reverse var I like 数字 格式 http search cpan
  • 在 Access 表单上将控件分组在一起

    我有一个 Access2003 表单 我想将多个控件组合在一起并通过 VBA 代码以编程方式更改可见性 这可能吗 我确实知道我可以通过 格式 gt 组 对项目进行分组 但如果这样做 如何在代码中引用整个组 谢谢 您可以将所有控件放置在组框控
  • libGDX 中的奖励视频广告示例

    我一直在寻找例子 但没有找到 我发现一个没有 libgdx 的应用程序以及它无法工作的一些原因 但应用程序也没有崩溃 public class AndroidLauncher extends AndroidApplication imple

随机推荐

  • iOS 中的 NSURLErrorCancelled = -999 是什么?

    有人可以描述如何使用 NSURLErrorCancelled 999 吗 来自苹果文档 NSURLErrorCancelled 999 当异步加载被取消时返回 Web Kit 框架 委托执行取消时将收到此错误 对加载资源的操作 请注意 NS
  • .NET Core 3 中不触发 ShouldSerialize 方法

    我通常使用ShouldSerialize排除没有数据 例如数组 的属性 但现在 当我仅在中使用 JSON 序列化器时 它似乎不会被触发 NET Core 3 使用时被触发NewtonSoft但我已将其从我的项目中删除 因为它似乎不再需要 例
  • 根据两个图像之间的差异创建蒙版 (iPhone)

    如何检测两个图像之间的差异 创建不同区域的掩模 以便处理两个图像共有的区域 例如高斯模糊 EDIT 我目前正在使用此代码来获取像素的 RGBA 值 NSArray getRGBAsFromImage UIImage image atX in
  • 为什么每个人都说 SpinLock 更快? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我在互联网上阅读了很多文档 文章和帖子 几乎每个地方的每个人都认为 SpinLock 对
  • 为什么python的re.search方法挂起?

    我正在使用 python 正则表达式库来解析一些字符串 目前我发现我的正则表达式要么太复杂 要么我正在搜索的字符串太长 这是挂断的示例 gt gt gt import re gt gt gt reg w s s d d d d gt gt
  • 没有更新/删除的死元组

    是否可以 我有一个表 其中有快速增长的死元组 但我在白天看不到该表的任何更新或删除 只是插入和选择 Autovacuum 每 10 分钟运行一次 n dead tup 几乎为零并再次开始增长 该表中有一个删除 用于清除日期为 15 天前的行
  • 如何处理具有不同高度单元格的GridView?

    注意 好吧 我承认标题有点模糊 但英语不是我的主要语言 我不知道如何用一句话来描述问题 背景 我正在尝试创建一个在 gridView 上显示所有应用程序信息的应用程序 gridView 将其 numColumns 设置为 auto fit
  • 卷“kube-api-access-cvwdt”的 MountVolume.SetUp 失败:对象“default”/“kube-root-ca.crt”未注册

    我只是尝试运行一个简单的批处理作业并收到此错误 卷 kube api access cvwdt 的 MountVolume SetUp 失败 对象 default kube root ca crt 未注册 这是我在该 pod 上运行描述 p
  • 在 std::function 中存储不可复制但可移动的对象

    假设我有一个函子 s 它是不可复制但可移动的 我如何将它存储在 std function 中 即 如何使以下代码编译 使用海湾合作委员会4 6 include
  • Conda 环境未显示在 Jupyter Notebook 中

    我安装了 Anaconda 使用 Python 2 7 并在名为的环境中安装了 Tensorflowtensorflow 我可以在该环境中成功导入 Tensorflow 问题是 Jupyter Notebook 无法识别我刚刚创建的新环境
  • 在java中洗牌JSON数组的有效方法?

    哪种方法最好 现在 我将我的JSONArray to an ArrayList自定义类的 使用Collections shuffle 执行该操作 并转换回JSONArray 这似乎开销太大 答案可能只是实施一个费舍尔 耶茨洗牌对于它 但我的
  • 为什么我的 Rails 控制器操作中需要“render layout: false”?

    我正在使用remote true成语来自于在 Rails 中使用 Javascript guide new html slim form for thing remote true do f f text field whatever f
  • 使用 std::to_string() 将双精度数转换为字符串时如何设置结果的精度?

    将双精度数转换为字符串时 有什么方法可以设置结果的精度using std to string No 返回 每个函数返回一个字符串对象 其中包含值的字符表示形式 它的参数将通过调用生成sprintf buf fmt val 格式说明符为 d
  • Java 属性反斜杠

    我正在使用 Java Properties 来读取属性文件 一切工作正常 但属性默默地删除了反斜杠 i e original c sdjf slkdfj jpg after c sdjfslkdfj jpg 如何让属性不这样做 我正在使用代
  • 实体框架 4.3 迁移错误

    我刚刚安装了 EF 4 3 beta1 以进行迁移 但无法使其正常工作 我得到的错误 PM gt Update Database Verbose Using NuGet project Project Domain Using StartU
  • Java 中的通用 InternPool

    我该如何写一个通用的InternPool
  • SQL 查询如何有两个 from 子句?

    这对我来说看起来很奇怪 delete from GearsDev dbo Products from GearsDev dbo Products as C inner join Common as M on M item C ItemNum
  • HTML - 如何检查文件(.js 或 .css)是否已加载或从缓存中获取?

    首先 我需要一种方法来强制浏览器始终加载 css 和 js 文件 我通过在文件中添加后缀解决了这个问题 Before After 这显然有效 现在 我需要知道这是否真的有效 当然 我可以编辑文件并检查浏览器中的更改 但我需要一种更具体的方式
  • UIElement 到图像文件 (WP7)

    我有一个StackPanel其中包括一些Rectangles我想将其放入图像文件 例如 PNG 我正在 Windows Phone 7 上开发此程序 我在互联网上找到的大部分信息 我认为 不适用于 WP7 我觉得System Windows
  • 使一个组将 Actor 隐藏在其边界之外

    我创建了一个非常简单的绘图 通过在屏幕右侧添加新图像 然后使它们向左侧移动来动态更新 这样 屏幕边界内的绘图看起来就像是随着时间的推移而绘制的 不幸的是 当这样做时 我必须让图像从屏幕外部开始 然后进入视图 并且在它们完全位于左侧屏幕之外之