关闭

基于Java的开源3D游戏引擎jMonkeyEngine

标签: 游戏引擎
5982人阅读 评论(1) 收藏 举报
分类:

jMonkeyEngine简介

jMonkeyEngine是一款纯Java语言编写的游戏引擎,继承了Java应用跨平台的特性,而且是开放源代码的,遵循BSD开源协议,BSD开源协议用一句简单的话概括就是你可以用它做任何你想做的事情而不必担心版权问题。

这款游戏引擎在商业游戏中使用的不多,但是笔者觉得它的设计思想非常美妙,通过阅读源码能给我们很多启示,下面是一些游戏中的效果图(来自官网)。

这里写图片描述

jMonkeyEngine使用

SDK下载地址:http://jmonkeyengine.org/downloads/

引擎为我们提供了一款集成开发环境,可以以向导的方式快速创建项目,新建BasicGame项目,向导为我们生成基础代码,并引入相应jar包:

这里写图片描述

点击运行项目按钮或按下F6键,编译运行程序。

这里写图片描述

源码方式创建游戏项目

jMonkeyEngine引擎源码托管在GitHub上,项目采用gradle构建,源码地址:
https://github.com/jMonkeyEngine/jmonkeyengine

这里写图片描述

点击Download Zip按钮下载。

开发环境搭建

1.下载gradle并解压,將bin目录设置为环境变量。打开控制台输入gradle -version,显示如下则表示安装成功。
这里写图片描述
gradle下载地址:http://gradle.org/downloads

2.安装gadle eclipse插件,笔者使用的eclipse 是Luna版本,点击菜单Help->Install New Software,输入地址:http://dist.springsource.com/release/TOOLS/gradle
全选显示的安装项目,一直下一步,安装完成后重启eclipse。

3.將下载的源码解压,新建工作空间,执行File->Import选择Gradle Project。
这里写图片描述

点击Browse找到项目源码目录,点击Build Model,选择要导入的项目,点击Next按钮,导入后將工程编码设置为UTF-8,不然会报错。
成功导入项目如下图所示:

这里写图片描述

使用引擎创建应用

接下来我们以jme3-examples工程下的一个案例说明如何使用jMonkeyEngine来渲染3D模型。

程序代码:

package jme3test.blender;

import com.jme3.app.SimpleApplication;
import com.jme3.light.DirectionalLight;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.scene.Spatial;

public class TestBlenderLoader extends SimpleApplication {

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

    @Override
    public void simpleInitApp() {
        viewPort.setBackgroundColor(ColorRGBA.DarkGray);

        //加载三维模型
        Spatial ogre = assetManager.loadModel("Blender/2.4x/Sinbad.blend");
        rootNode.attachChild(ogre);

        //加载三维模型贴图资源
        Spatial track = assetManager.loadModel("Blender/2.4x/MountainValley_Track.blend");
        rootNode.attachChild(track);

        // 设置太阳光
        DirectionalLight dl = new DirectionalLight();
        dl.setDirection(new Vector3f(-0.1f,-0.7f,1).normalizeLocal());
        dl.setColor(new ColorRGBA(0.44f, 0.30f, 0.20f, 1.0f));
        rootNode.addLight(dl);

        // skylight
        dl = new DirectionalLight();
        dl.setDirection(new Vector3f(-0.6f,-1,-0.6f).normalizeLocal());
        dl.setColor(new ColorRGBA(0.10f, 0.22f, 0.44f, 1.0f));
        rootNode.addLight(dl);

        // 设置环境光为白色
        dl = new DirectionalLight();
        dl.setDirection(new Vector3f(1, -0.5f,-0.1f).normalizeLocal());
        dl.setColor(new ColorRGBA(0.80f, 0.70f, 0.80f, 1.0f));
        rootNode.addLight(dl);
    }

    @Override
    public void simpleUpdate(float tpf){
    }

}

使用JMonkeyEngine创建应用,需要继承SimpleApplication类,重写父类的simpleInitApp和simpleUpdate,simpleInitApp在程序执行时只会调用一次,完成初始化工作。simpleUpdate是实时调用的,每一帧都会被执行一次,用于实现游戏中的动画效果。
其中rootNode、viewPort、assetManager都是父类的属性,我们可以通过这些属性来加载3D模型,设置环境光等。

编译运行

点击Run As ->Java Application.

这里写图片描述

可以看到,一个外部的3D模型被完整的渲染到窗口中,使用起来是不是很方便呢。
这篇文章只是对JMonkeyEngine做了简单的介绍,官网上提供的教学资源比较丰富,请参考:
http://wiki.jmonkeyengine.org/doku.php/jme3#documentation_for_intermediate_users

如果有时间的话笔者可以写一个这方面的专题,请关注我的博客吧。

3
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

JMonkeyEngine 中文教程

  • 2011-05-26 12:55
  • 4.78MB
  • 下载

jMonkeyEngine之Camera全攻略

昨天弄Camera,本来还以为不难,谁知道却被这个问题困扰了一个晚上。不知怎么地,早上突然一个猜想,然后测试,通过!因此写下本文,供大家一起学习交流。本文所用图片都是本人亲手PS的,所以转载文章、图片...
  • kakashi8841
  • kakashi8841
  • 2010-11-04 19:29
  • 7025

基于Java的开源3D游戏引擎jMonkeyEngine

基于Java的开源3D游戏引擎jMonkeyEngine
  • educast
  • educast
  • 2017-10-15 11:23
  • 463

01 用Intellij idea+Gradle+jmonkey开发3d仿真应用

由于项目需求是某一施工过程的模拟,对准确性的要求高于视觉效果,交付时间又比较紧,需要从数据库和dll中实时读入数据,进行可视化显示,因此选用了JmonkeyEngine。优点在于基于java且开源,学...
  • Liukx940818
  • Liukx940818
  • 2017-11-16 14:53
  • 79

各种Java游戏引擎简介

各种Java游戏简介 JME(jMonkey Engine): JME是一个高性能的3D图形API,采用LWJGL作为底层支持。它的后续版本将支持JOGL。JME和Java 3D具有类似的场...
  • fengye245
  • fengye245
  • 2012-08-28 22:08
  • 18636

千百万Java开发者的福音:跨平台Cocos2d-Java游戏引擎诞生

跨平台Cocos2d-Java游戏引擎以及配套的CocosEditor2.0游戏开发工具终于诞生了。使用Java语言来开发Cocos2d跨平台游戏, 和-lua,-js 的风格相近API,毋庸置疑,这...
  • touchsnow
  • touchsnow
  • 2014-08-26 10:49
  • 13937

教你实现自己的Java 2D游戏引擎

  • 2009-02-21 17:41
  • 15.35MB
  • 下载

纯Java开发的游戏引擎V0.4--DEMO -- 物理引擎

项目命名: JPhysicalEngine项目目的: 自己爱好/毕业设计项目人员: http://blog.csdn.net/kakashi8841项目描述: 使用Java开发的2D游戏物理引...
  • kakashi8841
  • kakashi8841
  • 2011-04-22 10:39
  • 9228

或许您还不知道的八款Android开源游戏引擎

本文中罗列出八款常见的Android游戏引擎,以供有需要者参考(收费,下载量过小,不公布源码,以及鄙人不知道(-_-)的引擎不在此列)。
  • cping1982
  • cping1982
  • 2010-08-04 20:27
  • 23122

简约游戏引擎 Android游戏引擎 java游戏引擎 lua游戏引擎

  • 2017-11-07 12:22
  • 4.79MB
  • 下载
    个人资料
    • 访问:533513次
    • 积分:6202
    • 等级:
    • 排名:第4663名
    • 原创:130篇
    • 转载:33篇
    • 译文:22篇
    • 评论:159条
    统计
    Flag Counter
    小鼠
    个人简介
    Java工程师,参与过网上银行、短信平台、渠道整合平台等大型Java EE项目开发,2016年与清华大学出版社合作编写并出版《AngularJS入门与进阶》一书。

    图书封面:


    图书简介
    目前淘宝、京东等电商网站有售。
    点我购书
    联系方式: jiangrongbo@gmail.com
    博客专栏
    最新评论