第一次翻译,估计会很慢...
SimpleGame is a default application type that is included in the jME package. SimpleGame
attempts to take care of everything for you. This makes it easy to get
prototypes up and running. It sets up all the elements such as Camera, InputHandler, basic RenderStates, etc. I'll run through creating a simple application that draws a Sphere
to the screen first, then the next tutorial we will create our own
Application type to give you a better understanding of what is going on
and better control.
第一个小例子SimpleGame是一个默认的程序类型,包括jme的包.SimpleGame帮你注意任何事情.它很容易的获取原型和运行.它已经设置好了包括Camera,输入帮助类,基本的渲染,等等.我将首先创建一个简单的程序,程序绘画一个球,然后创建一个我们自己的应用程序让我们更好的明白它是怎么运作的和如何更好的控制它.
First, we will create a new class that extends SimpleGame. In my case, I'm creating a class Lesson1:
public class Lesson1 extends SimpleGame {}
首先,我们创建一个类并继承SimpleGame,我创建了一个名字为Lesson1的类:
SimpleGame contains one abstract method: simpleInitGame
. It is in this method that we will create the Sphere. Add the simpleInitGame
method for now, we will come back to the Sphere
later. First, we want to discuss the main method. This is the entry
point for the jME application (just like any Java application). During
creation, you must create your application and tell it to start
executing the game loop. The Main Game Loop executes the update/render cycle until notified to exit and clean up. To start this loop a call to start
is required.
SimpleGame包括一个抽象方法:simpleInitGame().这是一个用来创建球的方法.先加上
simpleInitGame方法,我们将在后面调用它,首先我们说说main方法.main方法是jME程序的入口点(就像所有的java程序那样).在创建的时候,你必须创建你的应用程序然后告诉程序用start()方法开始执行程序.main方法执行更新/渲染的循环直到通知其结束和清理为止.启动程序必须调用start()方法.
To allow the user to specify the window parameters (resolution, fullscreen, etc), we will always display the PropertiesDialog. Do do this, we set the application behavior to ConfigShowMode.AlwaysShow.
程序允许用户指定窗口参数(分辨率,全屏,等等),我们希望一直显示会话属性那么设置程序的行为为ConfigShowMode.AlwaysShow.
下面是完整程序源码
import com.jme.app.SimpleGame;
?
public class Lesson1 extends SimpleGame {
/**
* Main method is the entry point for this lesson. It creates a
* SimpleGame and tells the dialog to always appear. It then
* starts the main loop.
* @param args
*/
public static void main(String[] args) {
Lesson1 app = new Lesson1();
app.setConfigShowMode(ConfigShowMode.AlwaysShow);
app.start();
}
?
protected void simpleInitGame() {
?
}
?
}
The above code should actually compile and run, creating a blank window
(with exception to the framerate and triangle count text).
上面的代码是可以编译运行的,就是创建了一个空白的窗口(有异常输出,帧率,三角形)
Now, we want to add to the simpleInitGame
to display a textured Sphere. To do so, we need to:
现在,我们想要添加
simpleInitGame()显示一个贴图的球型
.做这个球,我们需要这样做:
读取球
- 读取图片
- 应用图片到球身上
- 添加这个贴图的球到场景
Creation of the Sphere is as simple as creating a new Sphere object.
创建这个球是很简单的,就是创建了一个球的对象(Sphere object.)
Sphere s = new Sphere("Sphere", 30, 30, 25);
s.setLocalTranslation(new Vector3f(0,0,-40));
s.setModelBound(new BoundingBox());
s.updateModelBound();
You define the number of sections on the vertical and the horizontal
(in this case 30 and 30) and its radius (25). That is it. We now have a
sphere. We can then manipulate the position of the Sphere.
In this case, we want to move it along the negative Z direction (this
is equivalent to moving it “into” the screen). We then set up the Bounding Volume of the Sphere. This allows the Camera's Frustum Culling to work. This means, if we turn the camera away from the Sphere, it will not be drawn (and you will see the statistics drop to 0).
你定义了几个零件它的垂直和水平参数(在这个例子里是30X30)它的半径是(25).现在我们有一个球了.然后我们可以操作求得位置,在这个例子里,我们希望移动它的Z坐标为负值(就相当于把它移进屏幕里).然后我们设置这个球的约束(Bounding Volume).这允许视角平移(??不确定).这意味着如果我们视角离开球,这个球就不再被绘画了(你将看到统计信息掉到0,.....不明白啥意思)
Next, we will load the Monkey.jpg image and apply it as a texture to the Sphere. To load an image and obtain a Texture, we make use of the TextureManager and its loadTexture
method. We will load the image with basic Texture values.
接下来,我们将读取Monkey.jpg图片再应用其贴到那个球上去.读取图片和获取贴图我们使用TextureManager管理器的读取贴图的方法.我们将读取图片的基本贴图值
Texture texture = TextureManager.loadTexture(
Lesson1.class.getClassLoader().getResource(
"jmetest/data/images/Monkey.jpg"),
Texture.MinificationFilter.BilinearNearestMipMap,
Texture.MagnificationFilter.Bilinear);
We then create a TextureState and set this texture to it. To create the TextureState we use DisplaySystem as a factory method. SimpleGame has a reference to the current DisplaySystem instance: 'display'.
然后我们创建一个TextureState.java设置贴图到其上.创建TextureState我们用DisplaySystem用工厂方法.SimpleGame参考当前DisplaySystem的实例'display'
TextureState ts = display.getRenderer().createTextureState();
Sets if this render state is enabled during rendering:
ts.setEnabled(true);
We then make use of the setTexture
method to place the Texture of the Monkey.jpg image into the TextureState. The TextureState is now ready to be applied to the Sphere, and a call to setRenderState
does this. Now that this TextureState is attached to the Sphere whenever the Sphere is rendered, it will use its texture coordinates and apply the image to itself.
然后我们用setTexture()方法任命贴图Monkey.jpg到TextureState上.那么现在调用setRenderState()方法来使得
TextureState的贴图应用到球上.当球被渲染的时候TextureState已经附到球上了,它僵尸用贴图坐标和图片
ts.setTexture(texture);
s.setRenderState(ts);
Last, we attach the Sphere to the scene. SimpleGame provides an object call rootNode
that represents the main scene. Attaching the Sphere to this Node prepares it for rendering. To attach, simply call:
最后,我们把球附给场景.SimpleGame提供了一个对象叫rootNode,表示主场景.把球附给这个Node准备渲染,方法为:
rootNode.attachChild(s);
With these few simple calls we have a textured Sphere rendered to the screen.
用以上的方法我们简单的把一个贴图了的球渲染到屏幕上了.
SimpleGame,
like its name implies, makes things simple. However, for creating a
full fledged game, we are going to want complete control. Next lesson
will show us how to do this, by creating our own game type.
SimpleGame,就像名字一样,很简单.然而,做一个羽翼丰满的游戏,我们需要完全的控制,下一讲将讲述如何控制.
相关推荐
本文档提供了从零开始搭建JME3开发环境的详细步骤,以及通过创建3D蓝色立方体的示例帮助初学者理解JME3的基本使用方法。随着对JME3更深入的学习,开发者将能构建更加复杂和丰富的3D游戏和应用。
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 ...jme3tools.preview
这份"JME学习文档—中文版"压缩包文件,显然是为了帮助初学者或有经验的Java开发者掌握JME的使用和开发技巧。 JME的核心在于它的可移植性,它允许开发者编写一次代码,就能在多个平台上运行,这得益于其“Write ...
本教程是针对JME3的中文翻译版本,旨在帮助中文用户更好地理解和掌握这个强大的工具。 JME3的主要特点包括: 1. **高性能图形渲染**:JME3支持现代图形API,如OpenGL,能够高效地处理复杂的3D模型和场景,提供流畅...
在压缩包中的"2015jme3指南.docx"文件,很可能是这份指南的完整文档,包含了JME3的核心知识点。以下是可能涵盖的一些关键内容: 1. **JME3简介**:介绍JME3的历史背景、特点、与JavaFX或Java Swing的区别,以及为...
Java Micro Edition(JME,前身为Java 2 Platform, Micro Edition,J2ME)是一个针对嵌入式设备和移动设备的Java平台。本教程将深入探讨JME的基础知识及其在开发移动应用程序中的应用。 JME的目标是为资源有限的...
**JME程序设计实例教程详解** Java Micro Edition(JME),又称为Java 2 Micro Edition,是Java平台的一个子集,主要用于开发和部署在资源有限的设备上的应用程序,如移动电话、PDA、智能家电等嵌入式系统。本教程...
### JME中文教程知识点概述 #### 一、jMonkeyEngine3简介 - **定义与特点**:jMonkeyEngine3(简称JME3)是一款纯Java编写的免费3D游戏引擎,具备丰富的功能集,适用于各类游戏开发需求。该引擎不仅功能全面,其...
标题中的“联想的JME2207P键盘驱动”是指专门为联想品牌的一款键盘型号为JME2207P的设备设计的驱动程序。在计算机硬件系统中,驱动程序是连接操作系统与硬件设备的关键软件,它使得操作系统能够识别并控制特定硬件,...
本文档是JME 的javadoc 文档 JME是一个高性能的3D图形API,采用LWJGL作为底层支持。它的后续版本将支持JOGL。JME和Java 3D具有类似的场景结构,开发者必须以树状方式组织自己的场景。JME有一套很好的优化机制,这...
jme8002b蓝牙键盘驱动
它们包括图形渲染、物理模拟、音频处理、脚本系统、人工智能、网络通信等多种模块,帮助开发者无需从零开始编写所有底层代码。游戏引擎通常提供可视化编辑器,让设计者可以直观地构建游戏世界和交互逻辑。此外,引擎...
JME Molecular Editor结构式在线编辑器
《JMonkeyEngine3学习文档——中文版》是针对游戏开发者的教育资源,主要涵盖了JMonkeyEngine3的基本使用和核心概念。JMonkeyEngine3是一款强大的开源3D游戏引擎,它支持跨平台,适合创建复杂的3D场景和游戏。这篇...
标题“ant-jme.jar.zip”指的是一个压缩文件,其中包含了两个关键元素:ant-jme.jar和ant.license.txt。这个文件主要与Java开发工具有关,特别是Apache Ant和Java Micro Edition (JME)。 Apache Ant是一个Java库和...
《jme3游戏开发:Rise of Mutants》 在IT行业中,游戏开发是一个充满创新和技术挑战的领域,而Java语言并非通常首选的游戏开发工具。然而,随着技术的进步,Java也逐渐进入了游戏开发的舞台,其中JMonkeyEngine...
标题中的“联想FN功能键 jme2207p键盘驱动. XP windows7”表明这是一个针对联想笔记本电脑的FN功能键以及JME2207P型号键盘的驱动程序,适用于Windows XP和Windows 7操作系统。FN键是许多笔记本电脑上常见的辅助功能...
本文将详细讲解"jme3材质基础知识",主要围绕jMonkeyEngine3(简称jME3)这个强大的开源Java游戏开发引擎。 jMonkeyEngine3是一个基于现代图形技术如OpenGL的3D游戏引擎,它为开发者提供了丰富的工具和库,简化了...