我正在尝试使用LibGDX CatmullRomSpline在路径上实现恒定速度,并且我在使其工作时遇到问题.我已经尝试过很多关于这个主题的研究,包括阅读LibGDX维基,但他们对实现恒定速度的解释并没有真正意义,我无法让他们的方法发挥作用.https://github.com/libgdx/libgdx/wiki/Path-interface-&-Splines 在我的例子中,导数值非常大(数百),所以当将0-1之间的数除以导数时非常小,运动很慢,但仍然不恒定.所以我不确定他们的例子是如何运作的.
在我的例子中,我有几个视觉辅助工具与球的速度一致,随着速度的增加,屏幕底部的条形长度增加,随着速度的增加,颜色也会从白色变为红色.
在MyPath.java的act()方法中,我从[1]和[2]开始注释掉了两个部分.第一个是正常的,通过路径可变速度,第二个是我尝试使LibGDX wiki恒速工作失败.所以只需取消注释这两行就可以在两个版本之间切换.
我对恒速的想法包括根据路径的总长度计算速度(使用样条上的约长度(1000)方法),然后使用导数函数确定给定时刻的实际速度,并调整百分比发送到样条曲线的值以补偿速度变化,以使速度恒定.但是,我不太明白衍生函数实际上代表什么.我之前发布了关于衍生函数的问题,但根据我收到的评论,我认为可能更容易询问实现恒定速度.这是我之前关于导数函数的问题: LibGDX CatmullRomSpline导数意义?
关于如何在我的例子中实现恒定速度的任何想法(或解释CatmullRomSpline的衍生函数实际上代表什么,以便我可以更好地理解如何使用它)将不胜感激.
对于任何想要运行程序的人,这里是我为我的示例创建的两个图像文件(将这些文件添加到assets文件夹的根目录):http: //dropshots.com/Tekker/date/2015-09- 19
这是我的示例代码:
DesktopLauncher.java :(将桌面窗口宽度和高度更改为1000)
public class DesktopLauncher {
public static void main (String[] arg) {
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
config.width = 1000;
config.height = 1000;
new LwjglApplication(new TEST(), config);
}
}
Run Code Online (Sandbox Code Playgroud)
TEST.java:
public class TEST extends Game {
Stage stage;
MyPath path;
@Override
public void create () {
stage = new Stage();
stage.setViewport(new ScreenViewport(stage.getViewport().getCamera()));
Gdx.input.setInputProcessor(stage);
path = new MyPath(1000, 1000);
stage.addActor(path);
}
@Override …
Run Code Online (Sandbox Code Playgroud) 更新我的 LibGDX 项目中的所有库后,我收到一条错误消息
“导致重复输入
META-INFMANIFEST.MF
”
添加 Appodeal SDK 时。当我点击错误来源“ :android:javaPreCompileDebug
”时,我收到一条非常长的错误消息,但我在下面包含了其中的一部分。
我已将我的项目迁移到 AndroidX,所有库都是最新的(除非我遗漏了什么),并且我已经在 Android Studio 中完成了“构建 > 清理项目”。我之前曾在另一个使用旧版本 LibGDX 的项目中使用 Appodeal,但我刚刚使用最新版本创建了一个新的 LibGDX 项目,然后确保我使用的所有库都是最新的。Appodeal 是我必须添加到这个项目的最后一件事。问题线是
implementation 'com.appodeal.ads:nodex:2.5.10'
Run Code Online (Sandbox Code Playgroud)
在项目级build.gradle
文件中,如果我注释掉该行,那么我的应用程序将加载。谢谢。
部分错误信息:
org.gradle.execution.MultipleBuildFailures: Build completed with 1 failures.
at org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:386)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.initialization.DefaultGradleLauncher.runTasks(DefaultGradleLauncher.java:247)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:159)
at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:134)
at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:58)
at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:55)
at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:82)
at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:75)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:183)
at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:75)
at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:55)
at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:55)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at …
Run Code Online (Sandbox Code Playgroud)