尊敬的用户habr.com,下午好! 这是该主题的第三篇文章。 我整天工作,我无法离开惊人的Box2D库。
如果您还没有阅读
第一篇和
第二篇文章,请务必仔细阅读,这将很有趣! 我在
Eclipse中工作,在Java中编写。 我为什么这么称呼我的文章? 继续阅读-很快一切都会变得清晰起来! 剧透:我们将制造自己的永动机(包括汽车),也许我们会自己制造机器!
图1.永动机。
因此,今天我们将尝试获得以下内容:
图2.带引擎的机器。
是的,这不是错字! 今天,我们将制造一台具有真实发动机的机器,这与真实发动机是无法区分的! 这不是
第一篇文章为您提供的“购物车”。
有关连接
libGDX的信息,请参阅
第一篇文章。
这是显示我的装配体外观的图片。 我将带有Constants类的Utils包添加到Core文件夹,该文件夹仅包含一个常数-每米的像素数。 这样一来,世界就不再庞大。
图3.我的构建。
这是来自com.mygdx.game.desktop的DesktopLauncher类的代码:
将此代码粘贴到类中,然后将其忽略。package com.mygdx.game.desktop; import com.badlogic.gdx.backends.lwjgl.LwjglApplication; import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; import com.mygdx.game.MyGdxGame; public class DesktopLauncher { public static void main(String[] arg) { LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
以下MyGdxGame类的代码来自com.mygdx.game包。 一切都在代码注释中。
我们创造世界和机器。 package com.mygdx.game; import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.physics.box2d.Body; import com.badlogic.gdx.physics.box2d.BodyDef; import com.badlogic.gdx.physics.box2d.Box2DDebugRenderer; import com.badlogic.gdx.physics.box2d.CircleShape; import com.badlogic.gdx.physics.box2d.FixtureDef; import com.badlogic.gdx.physics.box2d.PolygonShape; import com.badlogic.gdx.physics.box2d.World; import com.badlogic.gdx.physics.box2d.joints.RevoluteJointDef; import utils.Constants; public class MyGdxGame extends ApplicationAdapter { private OrthographicCamera camera; private boolean DEBUG = false; private World world; private Box2DDebugRenderer b2dr;
图4.编译时会得到什么?
我们为汽车制造一个使车轮旋转的电动机。 但这是永远有效的,因为没有能量损失。 因此,我们创建了永动机!
而且您想知道该课程的结尾是什么? 您可以随时在评论中发送屏幕截图。 感谢您阅读本文的结尾! 希望您可以在Box2D中创建自己的汽车!
附言:我期待您在评论中的提问! 游戏物理学万岁!