`
peigen
  • 浏览: 80179 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

开始翻译JME文档

    博客分类:
  • JME2
阅读更多

第一次翻译,估计会很慢...

Introduction to SimpleGame

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).

上面的代码是可以编译运行的,就是创建了一个空白的窗口(有异常输出,帧率,三角形)

Displaying Something

Now, we want to add to the simpleInitGame to display a textured Sphere. To do so, we need to:

  • Load the Sphere
  • Load an image
  • Apply the image to the Sphere as a texture
  • Add the Sphere to the scene
现在,我们想要添加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,就像名字一样,很简单.然而,做一个羽翼丰满的游戏,我们需要完全的控制,下一讲将讲述如何控制.

分享到:
评论

相关推荐

    基于springboot框架的毕业设计系统的开发(完整Java源码+数据库sql文件+项目文档+Java项目编程实战+编程练手好项目).zip

    在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对学生毕业设计信息管理的提升,也为了对学生毕业设计信息进行更好的维护,毕业设计系统的出现就变得水到渠成不可缺少。通过对毕业设计系统的开发,不仅仅可以学以致用,让学到的知识变成成果出现,也强化了知识记忆,扩大了知识储备,是提升自我的一种很好的方法。通过具体的开发,对整个软件开发的过程熟练掌握,不论是前期的设计,还是后续的编码测试,都有了很深刻的认知。 毕业设计系统通过MySQL数据库与Spring Boot框架进行开发,毕业设计系统能够实现教师管理,公告类型管理,班级管理,课题信息管理,任务类型管理,选题申请管理,学院管理,课题任务管理,最终成绩管理,公告信息管理,学生管理等功能。 通过毕业设计系统对相关信息的处理,让信息处理变的更加的系统,更加的规范,这是一个必然的结果。已经处理好的信息,不管是用来查找,还是分析,在效率上都会成倍的提高,让计算机变得更加符合生产需要,变成人们不可缺少的一种信息处理工具,实现了绿色办公,节省社会资源

    hegaojian_WanAndroid_1742851819.zip

    hegaojian_WanAndroid_1742851819.zip

    《基于YOLOv8的违章停车识别系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    使用matlab基于卷积神经网络实现的汉语短句语音识别,输出拼音( 我正在学torch,这个已停止更.zip

    毕业设计

    移动开发_iOS_OpenUrl_快捷方式创建技术_App桌_1742856949.zip

    移动开发_iOS_OpenUrl_快捷方式创建技术_App桌_1742856949.zip

    《基于YOLOv8的体育发展识别系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    uappkit_uapp_1742847088.zip

    app开发

    蓝桥杯python相关资源

    蓝桥杯python相关资源

    招聘_实时聊天_APP_React_Redux_前后端分离_1742854279.zip

    招聘_实时聊天_APP_React_Redux_前后端分离_1742854279.zip

    《基于YOLOv8的玩具产品分析系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    vscode1.98.1版本,适用于macos

    vsco1.98.1版本,适用于macos

    《基于YOLOv8的体育产业监测系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    Kotlin_基础篇教程_函数与类实践_开发参考_1742851889.zip

    Kotlin_基础篇教程_函数与类实践_开发参考_1742851889.zip

    电子发票统计并生成表格

    电子发票统计并生成表格

    IIS重写IIS rewirte的插件ARR(Application Request Routing) Microsoft Application Request Routing 3.0 (x64)

    网上很多都是IIS7的教程ARR,对IIS10来说已经无效了。这个是最新的插件IIS重写IIS rewirte的插件ARR(Application Request Routing)

    linux相关课程学习笔记

    linux系统相关知识、shell编程相关知识、虚拟机安装及配置

    毕业设计神器!最新学生成绩管理系统源码(thinkphp6 框架),让你的毕设轻松出彩

    还在为毕业设计选题纠结?这款基于 thinkphp6 框架 开发的学生成绩管理系统源码,前端采用 X - adminV2.2,功能完备、结构清晰,完美适配毕业设计需求,助你在答辩中脱颖而出! 功能全面,轻松应对毕设考核 全流程管理模块:覆盖系统信息设置、单位信息管理、类别管理,以及学期、班级、学科等基础配置,更有管理员、权限、角色管理,完整呈现系统设计与实现的深度。 智能化成绩处理:支持考试信息自定义,灵活设置学科分数线;一键生成考试号、试卷标签、成绩采集表。多样化成绩录入(在线、表格、扫码枪)、实时查看成绩列表与图表,统计结果以柱形图、折线图、雷达图等形式展示,搭配学生历次成绩对比(表格 + 折线图),充分展现数据处理与分析能力。 精细化权限设计:区分教师、学生双身份登录,按职务、任务分工细化数据权限,体现系统安全性与合理性,为毕设增添专业亮点。 三大核心优势,锁定高分 极简操作,演示无忧:界面简洁直观,操作流程优化至 “三步到位”,答辩演示流畅自然,轻松征服导师。 热门技术栈,学习轻松:基于流行的 thinkphp6 框架,前端 X - adminV2.2,前后端分离。

    《基于YOLOv8的摄像设备分析系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    前端技术_React_TS_豆瓣电影信息_缓存优化扩展_1742857602.zip

    app开发

    基于Android的屏幕锁设计.zip

    基于Android的屏幕锁设计实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。

Global site tag (gtag.js) - Google Analytics