您的位置:首页 > 编程语言 > Java开发

LuoYing RPG教程-JME3游戏创建、场景编辑、载入完整示例教程

2017-05-12 12:02 746 查看
摘要: 这篇文章主要介绍:
如何创建一个3D游戏项目;
如何整合LuoYing RPG游戏框架到JMonkeyEngine游戏中;
如何使用落樱编辑器创建一个3D游戏场景,并将游戏场景载入到JME3游戏中。
文章会从创建项目、创建场景到导入场景作一个完整的说明过程。

简介

这篇文章主要介绍:

如何创建一个3D游戏项目;

如何整合LuoYing RPG游戏框架到JMonkeyEngine游戏中;

如何使用落樱编辑器创建一个3D游戏场景,并将游戏场景载入到JME3游戏中。

文章会从创建项目、创建场景到导入场景作一个完整的包含图示、代码演示、视频演示的讲解过程。

资源准备

整个过程中需要用到以下资源,你可以从以下的链接中下载到相应的资源。

JME SDK下载:https://github.com/jMonkeyEngine/jmonkeyengine/releases

JME SDK下载(分流):http://pan.baidu.com/s/1pK7ZQ5d

落樱RPG-核心包:https://git.oschina.net/huliqing/LuoYing/releases

落樱RPG-编辑器:https://git.oschina.net/huliqing/LuoYing/releases

JME SDK下载可以到JME的github,也可以从分流的百度盘下载,文件演示所依赖的版本为JME SDK 3.1.0-Stable稳定版。

创建场景

在下载了相应资源之后,先安装JME SDK, 如果你在安装后首次启动出现界面中文乱码,请参考一下这篇文章:http://bbs.jmecn.net/t/topic/99

JME SDK实际上是Netbeans的定制版,如果你很熟悉Netbeans的话,那开发起来一点问题都没有,当然也可以使用eclipse进行开发。只不过首次使用的话,强烈建议直接使用JME SDK,因为会少很多配置上的麻烦。

如果你习惯于直接用Eclipse、MyEclipse、Netbeans等进行开发的话,那么可以参考一下这篇文章:http://bbs.jmecn.net/t/topic/25/3

如果在配置过程中存在问题也可以从这个Q群中寻找一些帮助:423979787

下面接下来游戏创建过程将直接使用JME SDK进行示例, 如下一步步,因为比较简单,就不啰嗦:

创建一个JME3 BasicGame,如下图



填写项目名称,并选择项目保存路径,然后点击Finish完成创建,如下图:





现在我们创建了一个游戏项目,名称: SimpleGame, 路径: C:\home\workspace\sample\SimpleGame

同时SDK为我们创建了一个默认的启动类,如下:

package mygame;

import com.jme3.app.SimpleApplication;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.renderer.RenderManager;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Box;

public class Main extends SimpleApplication {

public static void main(String[] args) {
Main app = new Main();
app.start();
}

@Override
public void simpleInitApp() {
Box b = new Box(1, 1, 1);
Geometry geom = new Geometry("Box", b);

Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
mat.setColor("Color", ColorRGBA.Blue);
geom.setMaterial(mat);

rootNode.attachChild(geom);
}

@Override
public void simpleUpdate(float tpf) {
//TODO: add update code
}

@Override
public void simpleRender(RenderManager rm) {
//TODO: add render code
}
}

创建后就可以直接运行了,运行后可以看到一个非常简单的立方体在画面中,这就是一个最简单的JME 3D游戏了,如下图:





整合落樱RPG框架到JME3

在创建了一个非常简单的JME游戏之后,接下来我们看一下怎么把“落樱RPG”框架整合到JME3,操作很简单,只要两个很普通的步骤。

导入落樱RPG相应的jar包

初始化落樱RPG

第一步导入jar:在JME SDK中选择项目 -> 属性(右键)-> Libraries(库)-> Add JAR/Folder

然后把落樱RPG核心包中的三个jar添加进去就可以,如下图:









第二步初始化:这一步也非常简单,只要在主类的simpleInitApp方法中加入如下语句就可以:

LuoYing.initialize(this);

代码如下所示:

package mygame;

import com.jme3.app.SimpleApplication;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.renderer.RenderManager;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Box;
import name.huliqing.luoying.LuoYing;

public class Main extends SimpleApplication {

public static void main(String[] args) {
Main app = new Main();
app.start();
}

@Override
public void simpleInitApp() {
Box b = new Box(1, 1, 1);
Geometry geom = new Geometry("Box", b);

Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
mat.setColor("Color", ColorRGBA.Blue);
geom.setMaterial(mat);

rootNode.attachChild(geom);

// 初始化落樱RPG
LuoYing.initialize(this);
}

@Override
public void simpleUpdate(float tpf) {
//TODO: add update code
}

@Override
public void simpleRender(RenderManager rm) {
//TODO: add render code
}
}

现在整合落樱RPG到JME3游戏中就算完成了,整合后什么也没有做,那么接下来我们来看看落樱RPG可以用来做些什么。

创建游戏场景

现在我们需要使用落樱编辑器来创建一个游戏场景,并最终将这个场景载入到刚刚创建的游戏项目:SimpleGame中,作为游戏场景使用。

那么接下来,打开“落樱RPG编辑器”,并指定一个游戏资源文件夹,直接指定到刚刚创建的项目SimpleGame的assets目录。

这个资源文件夹是JME SDK在创建项目的时候自动创建的,这个文件夹是默认的游戏资源文件夹,所有游戏的相关资源都将放在这里,包括场景、模型、贴图等。

因为我们要用编辑器为这个游戏创建一些游戏资源,所以要选择这个游戏项目的资源文件夹,如下图:









编辑器打开SimpleGame的资源文件夹后,可以看到右边资源栏中列出了这个文件夹的目录结构,接着(右键)在Scenes目录下创建一个场景"scene.lyo",如下图:





双击打开这个场景,默认场景是空的,如下图:





接下来将创建一个简单的场景作为示例,过程如果用图示的话会比较麻烦,所以我做了一个简单的演示视频:

为了演示,并且也没有准备足够的资源,所以场景做得比较简单。

导入场景

现在我们已经在游戏的资源文件夹下做了一个场景:Scenes/scene.lyo

那么接着,来看看如何使用落樱RPG的功能导入这个游戏场景。

首先把JME创建项目时自动在场景中添加的一个立体体的相关代码去掉,因为不再需要。

然后添加以下代码到simpleInitApp方法中即可.

Scene scene = Loader.loadLyo("Scenes/scene.lyo");
scene.initialize();
rootNode.attachChild(scene.getRoot());

代码如下:

package mygame;

import com.jme3.app.SimpleApplication;
import com.jme3.renderer.RenderManager;
import name.huliqing.luoying.LuoYing;
import name.huliqing.luoying.object.Loader;
import name.huliqing.luoying.object.scene.Scene;

public class Main extends SimpleApplication {

public static void main(String[] args) {
Main app = new Main();
app.start();
}

@Override
public void simpleInitApp() {
//        Box b = new Box(1, 1, 1);
//        Geometry geom = new Geometry("Box", b);
//
//        Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
//        mat.setColor("Color", ColorRGBA.Blue);
//        geom.setMaterial(mat);
//
//        rootNode.attachChild(geom);

// 初始化落樱RPG
LuoYing.initialize(this);

//  载入落樱编辑器所创建的场景
Scene scene = Loader.loadLyo("Scenes/scene.lyo");
scene.initialize();
rootNode.attachChild(scene.getRoot());

//  让镜头移动速度快一些
flyCam.setMoveSpeed(50);
}

@Override
public void simpleUpdate(float tpf) {
//TODO: add update code
}

@Override
public void simpleRender(RenderManager rm) {
//TODO: add render code
}
}

接着再运行这个项目,就可以看到载入后的场景了,如下图:





按WASD移动镜头,鼠标旋转转动镜头。关于游戏逻辑,不是这篇文章的重点,所以这里不作介绍。

总结

这是一个关于LuoYing RPG游戏框架的使用教程,主要介绍了如下几点:

如何使用JME SDK来创建一个游戏

如何整合落樱RPG到JME游戏中

如何使用落樱RPG编辑器创建3D场景,并载入到JME3游戏中

LuoYing RPG是一个开源框架,还有其它很多功能模块,场景功能只是其中一个小部分,由于篇幅关系,后续有空我再一一介绍和演示。

如果你对这个框架有兴趣,可以关注一下这个项目:https://git.oschina.net/huliqing/LuoYing
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息