LibGDX指导-精灵追踪2D无限随机贝塞尔曲线

2024-02-21

我已经能够将平滑的动画应用于我的精灵并使用加速度计控制它。我的精灵固定为沿​​ x 轴左右移动。

从这里开始,我需要弄清楚如何创建一条垂直的无限波浪线供精灵尝试追踪。我的游戏的目的是让用户用加速度计控制精灵的左/右移动,试图尽可能地追踪永无止境的波浪线,同时精灵和相机都沿垂直方向移动以模拟“移动”沿线。”如果这条线是随机生成的,那就更理想了。

我研究过样条线、平面、贝塞尔曲线等,但我找不到任何与我想要实现的目标足够接近的东西。

我只是在寻求一些关于我可以使用什么方法来实现这一目标的指导。有任何想法吗?


您可以使用 4 到 5 个正弦波的总和(每个正弦波具有不同的幅度、波长和相位差)。所有这 3 个参数都可以是随机的。

得到的曲线将非常平滑(因为它主要是正弦曲线),但它看起来是随机的(它的时间周期将是所有 4 到 5 个随机波长的 LCM,这是一个巨大的数字)。

所以曲线不会长时间重复,但也不难记。关于计算复杂性,您始终可以通过使用 FPS 更改正弦项的数量来调整它。

It should look like this.
enter image description here

它也很容易实现。 (即使我可以生成上面的图像..哈哈)

希望这可以帮助。数学岩石。 :D

(这里的基本思想是有限傅立叶级数 http://en.wikipedia.org/wiki/Fourier_series我认为这应该是您的用例的理想选择)


Edit:

您可以像这样创建每个术语并为所有术语分配随机值。

public class SineTerm {

    private float amplitude;
    private float waveLength;
    private float phaseDifference;

    public SineTerm(float amplitude, float waveLength, float phaseDifference) {
        this.amplitude = amplitude;
        this.waveLength = waveLength;
        this.phaseDifference = phaseDifference;
    }

    public float evaluate(float x) {
        return amplitude * (float) Math.sin(2 * Math.PI * x / waveLength + phaseDifference);
    }

}

现在创建一个数组SineTerms 并添加所有返回的值evaluate(x)(使用精灵的一个坐标作为输入)。使用输出作为精灵的其他坐标。你应该可以走了。

真正的技巧是调整这些随机数。

祝你好运。

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

LibGDX指导-精灵追踪2D无限随机贝塞尔曲线 的相关文章

  • 在 Libgdx 中使用屏幕时重用代码

    根据我在阅读其他人关于如何制作不同屏幕的代码时的理解 您执行一个主处理程序类 然后为每个屏幕创建一个新类 让我困惑的是 每当你创建一个新屏幕时 你都必须重新定义将要渲染的所有内容 例如 SpriteBatch 精灵 字体等 有没有办法在所有
  • 如何找到贝塞尔曲线的中点?

    我想制作一条 命名 贝塞尔曲线 我希望它是一个单词命名的 这样我就不必担心自动换行 我通过P5制作贝塞尔曲线bezier sx sy c1x c1y c2x c2y ex ey 函数 我希望在贝塞尔曲线的中间显示一个字符串 但我不知道如何找
  • LibGDX 。绘制多行文本

    我正在尝试使用 libGDX 中的 BitmapFont 编写大文本 但它显示在一行上 用户只能看到文本的第一部分 如何使 bitmapFont 自动换行并在屏幕上显示整个文本 要么使用 n用于手动换行并通过渲染字体font drawMul
  • 仅绘制 QPainter Path 贝塞尔曲线的部分

    我只想绘制 QPainter 曲线路径的一部分 我的路径是这样的 QPointF p 4 p 0 QPoint 100 200 p 1 QPoint 200 60 p 2 QPoint 500 180 p 3 QPoint 600 100
  • 控制和创建多个精灵数组 Java Libgdx

    我正在尝试创建一个具有精灵的游戏 并且每秒都会生成另一个精灵 我尝试使用它作为基础 https github com libgdx libgdx wiki A simple game https github com libgdx libg
  • LibGDX 将 BitmapFont 绘制到中间位置(spritebatch)

    我想使用 BitmapFont 绘制一些文本 临时位置 然后绘制该位置的一部分 到最后的精灵批次 我当时正在考虑画画 到临时 spritebatch 但不可能 将 spritebatch 绘制到另一个上 我怎样才能做到这一点 您可以使用帧缓
  • 无法加载 libgdx 的共享库 box2d

    我有一个使用 Maven 构建的 libGDX 项目 它过去运行良好 但最近它停止工作 因为 libGDX 将 box2d 移动为扩展 我将扩展作为依赖项添加到项目的核心 就像任何其他依赖项一样
  • LibGDX 路径 (CatmullRomSpline) 恒速

    我试图使用 LibGDX CatmullRomSpline 在路径上实现恒定速度 但在使其正常工作时遇到问题 我已经尝试对这个主题进行了很多研究 包括阅读 LibGDX wiki 但他们对实现恒定速度的解释并没有真正意义 我无法让他们的方法
  • 在模拟器中运行时,libgdx 在 helloworld 应用程序上抛出异常

    我已经按照教程进行了操作并使用 libgdx 库创建了一个简单的应用程序 该应用程序具有红色背景 当我将其作为独立的桌面应用程序运行时 效果很好 但是当我运行 android 版本时 会引发以下异常 并且应用程序无法启动 02 04 18
  • LibGDX 文本字段输入导致崩溃

    所以我试图制作一个登录屏幕 现在的问题是 当我在文本字段中输入文本时 我的游戏崩溃了 这是我的主菜单类 import com badlogic gdx Gdx import com badlogic gdx Screen import co
  • Libgdx 模板和形状渲染器

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

    我正在使用 libGDX 开发游戏 我想知道如何拖放 Actor 我已经搭建了舞台并绘制了演员 但我不知道如何触发该事件 请尝试帮助我使用我自己的架构 public class MyGame implements ApplicationLi
  • 从通用平面获取轴对齐坐标

    标题可能是错误的 因为我不知道足够的数学知识来实际用一个小句子描述我的问题 我有一个 3D 矢量闭环 我将其称为 3D 多边形 我需要对其执行仅 2D 操作 这将返回一个 不同的 2D 点集 我需要将这些新的 2D 点转换回 3D 我目前的
  • AutoCAD 如何计算仅由拟合点定义的样条曲线的终点切线?

    AutoCAD 允许将 SPLINE 实体存储在仅由以下定义的 DXF 文件中 拟合点 问题是 这样的样条定义有无限 数值正确的解决方案 Autodesk 不提供必要的 从给定的拟合点计算所需参数的信息 tl dr 缺少的信息是估计的起点和
  • CSS 图像精灵

    使用CSS图像精灵的唯一好处是减少http请求吗 或者还有其他好处吗 还有一种简单的方法可以确定要显示精灵的哪个区域的时间吗 正如您所说 主要优点之一是减少对服务器的请求数量 提高响应时间 特别是在加载大量小图像时 但这并不是人们使用精灵的
  • Android 用 Path 画圆

    我正在尝试绘制一个圆圈的动画 在我的自定义视图中 我有 private final Paint mPaint new Paint setDither true setStyle Paint Style STROKE setStrokeCap
  • B 样条线混淆

    我意识到这个板上有关于 B 样条主题的帖子 但这些帖子实际上让我更加困惑 所以我想有人可能能够帮助我 我有 x 值范围从 0 到 1 的模拟数据 我想用三次样条拟合我的数据 degree 3 结为 0 0 1 0 2 0 9 1 我还想使用
  • 在 p5.js 中放大时精灵模糊

    我试图将 p5 js 中精灵的大小放大一点 系数 2 但渲染时它们看起来很模糊 显然 放大通常不是一个好主意 但是我已经成功地使像素化精灵在原始 JavaScript 中看起来清晰 基于这篇文章 https nluqo github io
  • 我如何在 LibGDX 应用程序中找到软键盘的高度

    我正在开发一个Android游戏与LibGDX 我需要找到用户正在使用的软键盘的高度 因为我想在键盘正上方显示一些对象 我读过这个帖子 如何获取 Android 上的软键盘高度 https stackoverflow com questio
  • 如何逐步绘制矢量路径? (拉斐尔.js)

    如何逐步动画化矢量路径 就像它被绘制一样 换句话说 慢慢地逐像素地显示路径 我在用着Rapha l js but如果您的答案不是特定于库的 例如可能有一些通用的编程模式可以完成此类事情 我对矢量动画相当陌生 欢迎 使用直线路径很容易做到 就

随机推荐

  • 如何使用 Chartjs 绘制带有基于时间的 x 轴的单行彩色条

    我有一些基于时间的数据 我想要图形表示 并希望使用 Chartjs 来绘制它 数据如下所示 Time State 7am up 9am down 10 45am out 17 35 up 另外 每个 状态 都有自己的颜色 所以在使用条形图时
  • Laravel:PHPUnit 导致所有内容出现 404

    我正在尝试使用 PHPUnit 为我的 Laravel 应用程序运行一些基本的单元测试 然而 所有 HTTP 请求都会返回 404 not find HTTP 状态代码 因此我们在第一个障碍上失败了 在互联网上搜寻后 我找到了有关如何解决此
  • 在 Java 中将 JSON 响应转换为字符串?

    当我向 api 发出 API 请求时 我收到 JSON 格式的响应 当我这样做时我得到了这个System Out Println的响应 HTTP 1 1 200 OK Date Thu 04 Oct 2012 20 33 18 GMT Se
  • 无法加载可部署 .jar 中的主类

    我正在尝试构建一个可执行的 jar 并收到错误Error Could not find or load main class com company app Main 我已经重新启动了我的电脑并尝试清理这个项目 我也尝试过使用
  • 如何使用 Spring Boot 2.1 Webflux 定制 Netty?

    我想在我的 Spring Boot Webflux 项目中自定义 Netty 在我的 POM 中 我添加了 Spring Boot Webflux 和 Spring Boot Actuator 依赖项 接下来 我重写了 WebServerF
  • 为什么在大多数用户代理默认样式表中
    的字体大小比

    小?

    The default h5 and h6 章节标题 https www w3 org TR html5 rendering html sections and headingsHTML5 中的字体大小为0 83em and 0 67em

  • 如何在 Web 服务调用中输入凭据(授权对象)?

    我听从了建议此处提供 https stackoverflow com questions 14532299 how to design a soap call in matlab它就像一个魅力 现在 我正在连接到服务器并调用名为的方法获取功
  • 如何在 PL/SQL 中以编程方式设置表名称?

    我创建了以下简单的 PL SQL 存储过程示例来提出特定问题 此过程将员工姓名和 ID 号插入到名为的表中employees 这 下面解释 PROCEDURE hire employee emp id IN INTEGER name IN
  • 导航抽屉中的 SeekBar

    我想在导航抽屉中使用搜索栏 基本上我需要左右滑动来设置搜索栏 好吧 你猜对了 它会滑动导航抽屉 我想做的是在聚焦时滑动搜索栏 在未聚焦时滑动导航抽屉 我该怎么做呢 这是我设置项目时的代码 我还没有设置搜索栏 private View onC
  • 如何在 AMD/ATI GPU 上运行 TensorFlow?

    读完本教程后https www tensorflow org guide using gpu https www tensorflow org guide using gpu我用这个简单的代码检查了 GPU 会话 import numpy
  • 无法连接到远程 SQL 服务器

    我的一个客户给了我一个完全合格的服务器名称 servername somedomain net尝试通过 VPN 连接到其 SQL Server 实例 所以我尝试使用他们给我的用户名和密码 没有运气 我可以 ping 通但无法连接 收到用户名
  • 如何将 float* 数组绑定到 cuda 中的一维纹理?

    我试图了解如何通过将纹理内存绑定到线性设备数组 而不是 cudaArray 来使用它 我的代码很简单 如下 我有一个包含 8 个数字的 float 数组 我试图将其绑定到 1D 纹理 然后在我的内核函数中尝试读取纹理并将值放入输出数组中 但
  • Typescript 和 Google 关闭

    我使用 Typescript 命令 tsc 创建一个包含所有平台类的 Javascript 文件 tsc Main ts out script myProject debug js declarations 然后 我想用 Google Cl
  • 将 Android Studio 更新到 2020.3.1 Canary 14 Build 后未解决的 Kotlin 引用

    我目前遇到 Android Studio 警告我某些不存在的 Kotlin 函数 我认为这是 Android Studio 唯一的问题 因为我可以很好地编译和运行我的项目 例如Android Studio无法识别val rows mutab
  • 如何使用 ASP.NET 5 注册 OData

    我有一个 ASP NET 5 应用程序 我想将 OData v4 与它一起使用 这是我尝试过的 1 我导入了以下nuget包 Microsoft AspNet WebApi 5 2 3 Microsoft AspNet OData 5 7
  • Mapbox 中路线的多色折线

    我用我的应用程序记录路线 主要是摩托车路线 并希望根据路线每个点的速度为其着色 基本上我知道如何在 Mapbox 中做到这一点 这就是问题所在 由于您只能为一条折线设置颜色 因此我必须将速度部分中的路线分开 并使用其特定的颜色打印每个路线部
  • WSO2ESB 4.5.1 axi2 属性 ssl.client.auth.cert.X509 始终为 NULL

    当使用NIO SSL监听器 org apache synapse transport nhttp HttpCoreNIOSSLListener 时 没有HttpServletContext不再可用 显然 因此深入研究可能解决我发现的客户端证
  • 如何在 aws elastic beanstalk 环境实例启动上运行 shell 脚本

    我正在使用 Terraform 脚本创建 aws elastic beanstalk 环境 我需要在实例启动时启动 shell 脚本 我已经尝试过以下操作 resource aws elastic beanstalk environment
  • 无边框 TabControl wpf (XP)

    我在 WPF 中设置 TabControl 样式时遇到视觉问题 因此 即使我将选项卡控件的边框设置为 0px 且透明 右侧和底部边框上仍然有一条非常细的线 我没有找到可以解决这个问题的属性 所以也许有人遇到了同样的问题并可以分享 提前致谢
  • LibGDX指导-精灵追踪2D无限随机贝塞尔曲线

    我已经能够将平滑的动画应用于我的精灵并使用加速度计控制它 我的精灵固定为沿 x 轴左右移动 从这里开始 我需要弄清楚如何创建一条垂直的无限波浪线供精灵尝试追踪 我的游戏的目的是让用户用加速度计控制精灵的左 右移动 试图尽可能地追踪永无止境的