java - 如何在 libgdx 中创建带有碰撞和球的随机和无限墙?

标签 java android libgdx

我是 Android 游戏开发的新手,但我对标准应用程序开发有一些经验。

我想创建一个用于学习目的的“教程游戏”。游戏类似于这个:https://goo.gl/ywawt5但玩家不是忍者,而是一个球。而且没有敌人或其他任何东西。它只是无缘无故地从一边跳到另一边。正如我所说,这只是为了学习代码!

我开始使用 LIBGDX 的 ShapeRenderer 创建一个小球:

    shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.circle(Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2, Gdx.graphics.getWidth() / 20);
    shapeRenderer.setColor(1,0,0,1);
    shapeRenderer.end();

现在的问题是:从这样的事情开始,这是否是正确的方式?我阅读了 LIBGDX 中的其他类,例如 circle 和 body,但由于实际上没有任何关于这些的教程,而且我是初学者,所以我真的不知道这里需要使用哪个类。当然,我以后需要无限墙,墙和球都应该发生碰撞(我想是吗?)但我真的不知道该怎么做。

我很感激任何能帮助我更多地了解 LIBGDX 的回答。 提前致谢!

最佳答案

您必须将问题分解成更小的步骤。

首先,让您的绘图工作。您使用 ShapeRenderer 是正确的,有关如何使用该类(以及许多其他类)的更多信息可以在 the libGDX API 中找到和 the libGDX wiki .你能在屏幕中央画一个圆圈吗?

一旦你的绘图工作了,然后担心动画。你能让圆圈在屏幕上弹跳吗?您可以使用非常基本的 if 语句来确定圆圈何时触及屏幕边缘,并且可以使用相同的逻辑在屏幕的每一侧添加“墙”。这里确实不需要 Box2D。

这样想:您实际上不需要无限的墙,您只需要让它看起来像您做的那样。您可以通过简单地在屏幕两侧绘制墙壁装饰并每帧将它们向下移动一点来实现。

既然你问了,Circle class 只是一个包含圆信息的类:它的位置和半径。该类还包含用于测试圆是否与圆相交、是否包含点等的函数。因此您可以将此类与其他代码一起使用,但不是必须的。

同样,CircleShape class 是另一个与 Box2D 一起工作的类,Box2D 是 libGDX 附带的物理引擎。尽管您最终可能会使用 Box2D,但我绝对不建议您在掌握基础知识之前使用它。

关于java - 如何在 libgdx 中创建带有碰撞和球的随机和无限墙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30349661/

相关文章:

java - 带有自定义适配器的 ListView 不显示所有项目

android - 无法将 LayoutParams 设置为工具栏

java - libGDX 如何将用户点击与对象位置匹配?

java - 在 Android 上使用 Apache poi 读取 xls 时内存不足

安卓 : Required API to use Switch?

java - LibGDX setScreen() 多次执行时会导致游戏崩溃

java - Libgdx 项目在 Android 上崩溃

java - 无法覆盖 SwingWorker 中的 process() 方法

java - Grails 应用程序 - 将非 www 版本重定向到网站的 www 版本

java - OTP 和 SMS 网关实现涉及哪些步骤和流程