文档章节

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

h
 huliqing
发布于 2017/05/11 20:14
字数 1893
阅读 549
收藏 17

简介

这篇文章主要介绍:

  • 如何创建一个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,如下图

填写项目名称,并选择项目保存路径,然后点击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,操作很简单,只要两个很普通的步骤。

  1. 导入落樱RPG相应的jar包
  2. 初始化落樱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

© 著作权归作者所有

共有 人打赏支持
h

huliqing

粉丝 12
博文 5
码字总数 13706
作品 1
广州
程序员
加载中

评论(2)

爪哇豆
爪哇豆
必须要点赞,厉害了
kubei
kubei
真牛逼
huliqing/LuoYing

##落樱RPG## 落樱(LuoYing)是一个用于简化3D角色扮演游戏开发的游戏框架,该项目基于Java及JME3(JMonkeyEngine)进行开发,兼容JME,创建的游戏可以蹖多个平台发布(WindowLinuxMacAndroidIOS)...

huliqing
2017/05/02
0
0
Java 3D RPG游戏开发框架--LuoYing RPG

落樱RPG(LuoYing)是一个用于简化3D角色扮演游戏开发的游戏框架,该项目基于Java及JME3(JMonkeyEngine)进行开发,兼容JME,创建的游戏可以蹖多个平台发布(WindowLinuxMacAndroidIOS)等。 这个...

huliqing
2017/04/16
392
0
如何利用Cocos2d-x开发一个游戏?

[Cocos2d-x相关教程来源于红孩儿的游戏编程之路 CSDN博客地址:http://blog.csdn.net/honghaier] 红孩儿Cocos2d-X学习园地QQ群:249941957 加群写:Cocos2d-x 如何利用Cocos2d-x开发一个游戏...

长平狐
2012/11/19
279
0
如何利用Cocos2d-x开发一个游戏?

[Cocos2d-x相关教程来源于红孩儿的游戏编程之路 CSDN博客地址:http://blog.csdn.net/honghaier] 红孩儿Cocos2d-X学习园地QQ群:249941957 加群写:Cocos2d-x 如何利用Cocos2d-x开发一个游戏...

长平狐
2013/03/19
448
0
[ActionScript 3] 【开源】D5Power RPG网页游戏开发套件

分享(0) 收藏(39) 举报 D5Power 沙发 发表于 2011-2-18 09:19:30 第一步 创造第一幅游戏地图 举报 D5Power 板凳 发表于 2011-2-18 09:19:37 使用开发包还原地图并创建游戏角色...

simpower
2015/01/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

(一)软件测试专题——之Linux常用命令篇01

本文永久更新地址:https://my.oschina.net/bysu/blog/1931063 【若要到岸,请摇船:开源中国 不最醉不龟归】 Linux的历史之类的很多书籍都习惯把它的今生来世,祖宗十八代都扒出来,美其名曰...

不最醉不龟归
25分钟前
6
0
蚂蚁金服Java开发三面

8月20号晚上8点进行了蚂蚁金服Java开发岗的第三面,下面开始: 自我介绍(要求从实践过程以及技术背景角度着重介绍) 实习经历,说说你在公司实习所做的事情,学到了什么 关于你们的交易平台...

edwardGe
31分钟前
7
0
TypeScript基础入门 - 函数 - this(三)

转载 TypeScript基础入门 - 函数 - this(三) 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.2.4 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能...

durban
41分钟前
0
0
Spark core基础

Spark RDD的五大特性 RDD是由一系列的Partition组成的,如果Spark计算的数据是在HDFS上那么partition个数是与block数一致(大多数情况) RDD是有一系列的依赖关系,有利于Spark计算的容错 RDD中每...

张泽立
49分钟前
0
0
如何搭建Keepalived+Nginx+Tomcat高可用负载均衡架构

一.概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已...

Java大蜗牛
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部