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

时间:2015-05-20 12:28:19

标签: java android libgdx

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

我想创造的是一个" TutorialGame"用于学习目的。游戏类似于这个游戏: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中的其他课程,比如圆圈和身体,但由于没有关于这些课程的任何教程,而且我是初学者,我不知道哪个课程需要在这里使用。当然我以后需要无限的墙壁,墙壁和球都应该碰撞(我想是这样吗?)但我真的不知道该怎么做。

我很感激任何答案,以帮助我更多地了解LIBGDX。 提前谢谢!

2 个答案:

答案 0 :(得分:2)

您必须将问题分解为更小的单个步骤。

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

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

以这种方式思考:你实际上并不需要无限的墙壁,你只需要让它看起来像你一样。您可以通过简单地在屏幕两侧绘制墙壁装饰并将每个框架向下移动一点来实现这一点。

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

同样,CircleShape类是与Box2D一起使用的另一个类,Box2D是libGDX附带的物理引擎。虽然你可能最终会使用Box2D,但我绝对不会建议你使用它,直到你掌握了基础知识。

答案 1 :(得分:-1)

如果我理解你的问题,我会使用box2d,墙壁和球,这里你必须从box2d示例开始:

https://www.youtube.com/watch?v=zDEQycnhaAc

在无尽的墙壁上,我会尝试这样的事情

这取决于你想要的工作方式,但如果你的玩家垂直向上,向上或向下移动,你可以放置一个数字框2d,你想要的形状。 并且在游戏中为这个区域塑造动作 enter image description here

  1. 是游乐区。
  2. 是box2d的形状。"示例大小"
  3. 例如,如果您的玩家向上移动,您可以按照该方向移动形状等。

    我从未做过,类似的事情,我这样测试,作为第一个想法,我希望能提供帮助。

    注意: 如果你选择使用box2d,就不必进行大量的模拟碰撞机构之间,也会有重力,只有你必须知道如何使用它们,我认为它最终会更容易,但是这只是我的意见