java游戏怎么导入jme3,LuoYing RPG教程-JME3游戏创建、场景编辑、载入完整示例教程...

简介

这篇文章主要介绍:

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

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

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

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

资源准备

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

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,如下图

7ea23847523ec18699d3f49b571038ab.png

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

6aaf32b3e7764b22748b800b3e1aef52.png

现在我们创建了一个游戏项目,名称: 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游戏了,如下图:

6f375806b1e406fa4df38776692c042b.png

整合落樱RPG框架到JME3

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

导入落樱RPG相应的jar包

初始化落樱RPG

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

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

38d60bdc1efdb7d68d40ab11ab4fd769.png

a04161586b5b95e259b3f6b74b96ae85.png

第二步初始化:这一步也非常简单,只要在主类的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在创建项目的时候自动创建的,这个文件夹是默认的游戏资源文件夹,所有游戏的相关资源都将放在这里,包括场景、模型、贴图等。

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

5d3dd609f31ff7943c62b73b0d9c8147.png

3d3931cd9b72245de06589dcb94a6fb9.png

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

18da7b5c5e59e68cf25c99fe10bbcf60.png

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

acac03c205613afad44976e15c7d4ad0.png

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

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

导入场景

现在我们已经在游戏的资源文件夹下做了一个场景: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

}

}

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

2586ec725888be1cc4fb20aa0b6270a3.png

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

总结

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

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

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
com.jme3.animation com.jme3.app com.jme3.app.state com.jme3.asset com.jme3.asset.pack com.jme3.asset.plugins com.jme3.audio com.jme3.audio.joal com.jme3.audio.lwjgl com.jme3.audio.plugins com.jme3.bounding com.jme3.bullet com.jme3.bullet.collision com.jme3.bullet.collision.shapes com.jme3.bullet.control com.jme3.bullet.joints com.jme3.bullet.joints.motors com.jme3.bullet.nodes com.jme3.bullet.nodes.infos com.jme3.bullet.util com.jme3.collision com.jme3.collision.bih com.jme3.effect com.jme3.export com.jme3.export.binary com.jme3.export.xml com.jme3.font com.jme3.font.plugins com.jme3.input com.jme3.input.awt com.jme3.input.binding com.jme3.input.dummy com.jme3.input.event com.jme3.input.lwjgl com.jme3.light com.jme3.material com.jme3.material.plugins com.jme3.math com.jme3.niftygui com.jme3.post com.jme3.renderer com.jme3.renderer.jogl com.jme3.renderer.layer com.jme3.renderer.lwjgl com.jme3.renderer.queue com.jme3.scene com.jme3.scene.control com.jme3.scene.debug com.jme3.scene.mesh com.jme3.scene.plugins com.jme3.scene.plugins.ogre com.jme3.scene.shape com.jme3.shader com.jme3.shader.plugins com.jme3.shadow com.jme3.system com.jme3.system.jogl com.jme3.system.lwjgl com.jme3.terrain com.jme3.texture com.jme3.texture.plugins com.jme3.ui com.jme3.util com.jme3.util.xml com.jme3.video com.jme3.video.plugins.jheora jme3game.cubefield jme3test jme3test.app jme3test.asset jme3test.audio jme3test.awt jme3test.bounding jme3test.bullet jme3test.collision jme3test.conversion jme3test.effect jme3test.export jme3test.gui jme3test.light jme3test.material jme3test.math jme3test.model jme3test.model.anim jme3test.model.shape jme3test.niftygui jme3test.post jme3test.scene jme3test.stress jme3test.texture jme3tools.converters jme3tools.converters.model jme3tools.converters.model.strip jme3tools.nvtex jme3tools.optimize jme3tools.preview

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值