在 LIBGDX 中绘制弯曲的自定义对象?

2023-12-29

我最近一直在研究LibGDX,似乎碰壁了,如图所示,蓝点代表用户的手指,它本身的地图生成是我似乎陷入困境的地方,LibGDX是否提供了动态绘制的方法弯曲的物体?我可以简单地自己将它们生成为图像,但是图像会被极大地拉伸到手指可以容纳 3 个手指的间隙!但还需要 1000 PX 高才能适应整个关卡设计。

我是否应该将数百个多边形靠在一起绘制一条曲线? 另一方面,我需要一种方法来确定对象何时从下到上,以便我可以生成另一个“块”地图。


您不需要数百个多边形来绘制您所绘制的曲线。你可以在左边使用 40 个四边形,在右边使用 40 个四边形,看起来会非常平滑。将每边的值提高到 100,它看起来几乎完全平滑,并且任何现代设备都不会在以 60 fps 运行时遇到任何问题。

您可以使用 Mesh 类为每一面生成程序网格。您可以使网格留在一个位置,锁定到相机,并修改它的顶点和 UV,使其看起来像是在沿着无限长的走廊平移。这需要预先进行大量的数学计算,但一旦掌握了这些,应该会很顺利。

基本上,您的关卡设计可以基于某种以 Y 偏移作为输入的方程。或者它可能是一长串偏移,您可以使用样条方程或线性方程在它们之间进行插值。输出将是 UV 和 X 坐标,可用于更新两个网格的每个顶点。

您可以使用顶点着色器来有效地更新 UV 坐标,使用更新每个帧的恒定偏移统一参数。这样您就不必每帧都将 UV 数据移动到 GPU。

对于顶点位置,请使用网格体的底层float[]并打电话setVertices()每帧更新它。信息here https://github.com/libgdx/libgdx/wiki/Meshes.


实际上,如果您保留 UV 和 X 位置,而只向上滚动 Y 位置,效果可能会更好。在屏幕顶部和底部保留几个四边形的填充,并在滚动离开屏幕后将顶部四边形移动到底部。

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

在 LIBGDX 中绘制弯曲的自定义对象? 的相关文章

随机推荐

  • automake环境变量条件

    我有一个文件 Makefile am 我用来生成 Makefile 在生成的 Makefile 中我想要类似的内容 ifndef SOURCECODEPATH SOURCECODEPATH home root source code pat
  • 如何允许 NSMutableDictionary 接受“nil”值?

    我有这样的声明 custData setObject rs stringForColumnIndex 2 forKey email where rs stringForColumnIndex 2 从 SQLite3 d b 获得的值为nil
  • jQuery UI 自动完成的 JSON 格式

    的文档jQuery UI 自动完成 http docs jquery com UI Autocomplete指出source属性可以设置为以 JSON 格式返回建议项目的 URL 但是 它没有进一步详细说明此 JSON 结果的结构应该是什么
  • 绘制平均值和标准差

    我在不同的 x 点有多个函数值 我想在 python 中绘制平均值和标准差 就像答案一样这个问题 https stackoverflow com questions 19797846 plot mean standard deviation
  • 尝试读取不存在的文件夹`/private/tmp/CocoaPods/Lint/Pods/

    AM 在验证 pod 规格时得到此信息 Attempt to read non existent folder private tmp CocoaPods Lint Pods Test 请帮忙 你需要跑git tag x x x and g
  • C# YamlDotNet 库是否支持合并键?

    我对 C YamlDotNet 库有疑问http www aaubry net page YamlDotNet http www aaubry net page YamlDotNet 您知道该库是否支持 合并键 吗 http yaml or
  • asp.net core RC2图像不显示

    我想做的是显示网络根文件夹中的图像 这就是我尝试执行此操作的方式 下面的课程只是实验性的 只是我尝试的例子 目前正在读取的文件夹中只有一张图像 rootPath 也取自 hostingEnvironment WebRootPath publ
  • 在 python 中将一个 tar 中的文件添加到另一个 tar 中

    我想制作一份 tar 的副本 删除一些文件 基于它们的名称以及可能的其他属性 如符号链接等 因为我已经在 python 中打开了 tar 文件 所以我想在 python 中执行此操作 我知道 TarFile getmembers 返回 Ta
  • 在项目中包含 Paragonie Halite 找不到变量和函数

    我已经在 Windows 上为 PHP 7 安装了 libsodium 并且正在使用 PHPStorm 开发我的项目 我还安装了 Paragonie 的 Halite 如果 libsodium 扩展安装不正确 它甚至无法安装 IDE 还会找
  • 使连续的数字列名称带有字母前缀

    我想向我的数据集添加标签 然而 问题是我的数据集中有太多列 因此手动添加标签很费力 我有 33 列 包括label列在末尾 如下所示 features lt c f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
  • vue-chartjs:您可能需要适当的加载器来处理此文件类型,当前没有配置加载器来处理此文件

    我按照说明添加了 vue chartjs https vue chartjs org ja guide https vue chartjs org ja guide 纱线添加 vue chartjs 电子邮件受保护 cdn cgi l em
  • 有人可以转换代码,以便它使用 EXEC @sql 而不是 EXEC sp_executesql 吗?

    这是我想要转换的存储过程 ALTER PROCEDURE GetName ClientName nVarchar max AS BEGIN DECLARE sql NVARCHAR MAX DECLARE name NVARCHAR MAX
  • PHP 自动生存

    更新 我提出这个问题的初衷是确定 PHP 是否确实具有此功能 这在答案对标量问题的关注中被忽略了 请参阅这个新问题 PHP 有自动生存功能吗 https stackoverflow com questions 5964420 does ph
  • 使用反射的 F# 通用 Map.count

    这是对此的后续上一个问题 https stackoverflow com questions 55877793 f pattern matching on a generic type map 55878543 55878543 但有不同的
  • Openstack.Net SDK无法访问带区域的服务

    使用我们自己的硬件 我们安装了带有所有组件的普通 openstack 但是由于区域问题 我在访问除身份之外的服务时遇到问题 使用的代码如下 使用我们创建的管理员帐户和管理员租户进行调用 public static void TestAcce
  • 从组件分派操作时未调用 ngrx 效果

    我遇到了 ngrx 存储问题 没有发送一个动作来处理它 这是尝试分派的组件 signin this formStatus submitted true if this formStatus form valid this store dis
  • 将 Android 模拟器快照移动到另一台计算机

    因此 我需要制作一个可供多人 跨多台计算机使用的快照 我正在做一些测试 需要设置很多东西来测试一件事 设置需要一些时间 我希望能够只创建一个 avd 并让几个人使用它 我以为我可以通过制作一个然后拍一张快照来做到这一点 但无论我做什么 我就
  • 在 EPPlus 中设置*两者*值和公式

    有什么办法可以设置吗both the Value Formula单元格的属性以便它们保留到写入的 XLSX 文件中 由于EPPlus不计算公式 它依赖excel来计算 所以我为用户预先计算结果 这样 如果他们不打开文件 而是重新上传文件 则
  • 服务器事件中的最终消息直到心跳才被推送

    我们在通过服务堆栈发送的最终消息等待下一个心跳发送时遇到问题 我们认为它类似于 Servicestack 服务器发送事件 https stackoverflow com questions 25960723 servicestack ser
  • 在 LIBGDX 中绘制弯曲的自定义对象?

    我最近一直在研究LibGDX 似乎碰壁了 如图所示 蓝点代表用户的手指 它本身的地图生成是我似乎陷入困境的地方 LibGDX是否提供了动态绘制的方法弯曲的物体 我可以简单地自己将它们生成为图像 但是图像会被极大地拉伸到手指可以容纳 3 个手