JMonkeyEngine:初学者
前一页: 安装 JME3,下一页: Hello Node
先决条件: 本教程假设您
- 已下载 jMonkeyPlatform(或在您选择的另一个 IDE 中设置 jMonkeyEngine3)
- 已使用 JME3 库创建了一个 Java SE 项目,并将 JME3 库添加到类路径。
您已准备好创建第一个 jMonkeyEngine3 游戏!您通常可以在此入门系列中使用任何集成开发环境 (IDE) 中使用这些教程,例如 jMonkeyPlatform、NetBeans、Eclipse 或直接从命令行运行它们。在以下内容中,我们将使用 jMonkeyPlatform。
创建一个jme3test.helloworld包和一个文件HelloJME3.java放在里面。
在 jMonkeyPlatform 中,您右键单击 Source Packages 节点
- 选择新建… > Java 类来创建一个新文件。
- 输入一个类名HelloJME3
- 输入一个包名jme3test.helloworld
- 点击完成。
将 HelloJME3.java 文件的内容替换为以下代码
package jme3test.helloworld; import com.jme3.app.SimpleApplication; import com.jme3.material.Material; import com.jme3.math.Vector3f; import com.jme3.scene.Geometry; import com.jme3.scene.shape.Box; import com.jme3.math.ColorRGBA; /** Sample 1 - how to get started with the most simple JME 3 application. * Display a blue 3D cube and view from all sides by * moving the mouse and pressing the WASD keys. */ public class HelloJME3 extends SimpleApplication { public static void main(String[] args){ HelloJME3 app = new HelloJME3(); app.start(); // start the game } @Override public void simpleInitApp() { Box b = new Box(Vector3f.ZERO, 1, 1, 1); // create cube shape at the origin Geometry geom = new Geometry("Box", b); // create cube geometry from the shape Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); // create a simple material mat.setColor("Color", ColorRGBA.Blue); // set color of material to blue geom.setMaterial(mat); // set the cube's material rootNode.attachChild(geom); // make the cube appear in the scene } }
构建并运行 HelloJME3 类。如果弹出一个 jme 设置对话框,请确认默认设置。
- 您应该看到一个简单的窗口,显示一个 3D 立方体。
- 使用 WASD 键和鼠标在周围导航。
- 按 Escape 键关闭应用程序。
恭喜,它成功了!我们是怎么做到的呢?
上面的代码初始化了场景,并启动了游戏。
您想要创建一个立方体。 | 您创建一个 Geometry,它有一个 1x1x1 的 Box 形状。 |
您想要使用蓝色。 | 您创建一个 Material,它有一个蓝色的 Color 属性。 |
您想要将立方体涂成蓝色。 | 您设置 Geometry 的 Material。 |
您想要立方体出现在场景中。 | 您将立方体附加到 rootNode。 |
在 Java 中,创建一个蓝色立方体如下所示
public void simpleInitApp() { Box b = new Box(Vector3f.ZERO, 1, 1, 1); // create cube shape at the origin Geometry geom = new Geometry("Box", b); // create cube geometry from the shape Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); // create a simple material mat.setColor("Color", ColorRGBA.Blue); // set color of material to blue geom.setMaterial(mat); // set the cube's material rootNode.attachChild(geom); // make the cube appear in the scene }
在simpleInitApp()方法中,您在游戏开始之前创建或加载所有游戏对象。该simpleInitApp()方法在每个 JME3 游戏开始时自动调用一次。
一个典型的 JME3 游戏有以下初始化过程
- 您初始化游戏对象
- 您创建或加载对象并对其进行定位。
- 您通过将对象附加到rootNode.
- 来使它们出现在场景中
- 示例:加载玩家、地形、天空、敌人、障碍物,并将它们放置在它们开始的位置。
- 您初始化变量
- 您将变量设置为它们的初始值。
- 您想要使用变量来跟踪游戏状态。示例:将score设置为 0,将health
- 设置为 100%,等等。
- 您初始化键和鼠标操作
- 默认情况下,以下输入绑定是预先配置的
- W、A、S、D 键 - 在场景中移动
- 鼠标移动和箭头键 - 旋转相机
- Escape 键 - 退出游戏
- 添加您自己的键和鼠标点击。
- 您初始化键和鼠标操作
示例:点击射击,按空格键跳跃,等等。
开始游戏[编辑 | 编辑源代码]HelloJME3.java 类扩展了com.jme3.app.SimpleApplication,它是com.jme3.app.ApplicationHelloJME3.java 类扩展了.
的子类。每个 JME3 游戏都是要运行 JME3 游戏,您首先实例化您的SimpleApplication类的实例,然后调用它的start()
public static void main(String[] args){ HelloJME3 app = new HelloJME3(); app.start(); // start the game }
方法
通常,您从 Java 应用程序的 main() 方法启动游戏。
结论这短短几行代码只是显示了一个静态的 3D 立方体。您可以在这个 3D 场景中四处导航。
- 您已经了解到,SimpleApplication 是一个很好的起点,因为它为您提供了simpleInitApp()一个
- 您已经了解到,SimpleApplication 是一个很好的起点,因为它为您提供了rootNode方法,您可以在其中创建对象。
- 方法,您可以在其中将对象附加到场景中以使其可见。
有用的默认输入设置,您可以使用它们在场景中进行导航。
- 在开发游戏应用程序时,您现在将需要
- 初始化您的游戏世界,
- 在事件循环中触发操作,
响应用户输入。
在以下教程中,您将学习如何使用 jMonkeyEngine 3 完成这些任务。
继续学习Hello Node 教程,我们将首先向您展示有关如何初始化游戏世界的更多详细信息,也称为场景图。