创建一个3D游戏,你必须先创建一个场景和一些物体,然后将这些物体(比如玩家、障碍物等)放到场景中,然后移动、缩放、旋转、着色或者赋予他们行为。在这章中我们将会看到一个简单的3D场景。你将学会如何在场景动画中创建一个3D世界,你会发现rootNode是个很重要的东西。你将学会如何去创建一个简单的物体,如何去改变他们,比如:移动、缩放、旋转。你将知道在场景图中两种空间类型的不同,Node和Geometry。看下面的代码1、我们创建了一个立方体这个立方体的边长是(1,1,1)边长单位为2*2*2我们把它放在坐标为(1,-1,1)我们赋予它蓝色的材质

Box box1 = new Box( new Vector3f(1,-1,1), 1,1,1);
Geometry blue = new Geometry("Box", box1);
Material mat1 = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
mat1.setColor("Color", ColorRGBA.Blue);
blue.setMaterial(mat1);

2、我们用类似方法创建一个红色材质的立方体,注意他们处在同一Y轴上
3、我们创建一个Node这个Node默认位置是在坐标为(0,0,0)的位置上我们把它附加到rootNode而这个rootNode在场景中是看不到的

        Node pivot = new Node("pivot");rootNode.attachChild(pivot);

4、注意我们还没有把刚新建的两个立方体附加到任何节点上。如果我们这个时候启动程序的话,那么在场景图中式看不到任何东西的
5、我们把两个立方体附加到节点中,这个时候如果我们启动程序,那么我们能看到两个一上一下的立方体

pivot.attachChild(blue);
pivot.attachChild(red);

6、现在我们倾斜这个节点。现在我们启动程序,我们能看到刚那两个立方体对于Y轴呈现了一定的角度

pivot.rotate( 0.4f , 0.4f , 0.0f );

好,以上就是本节代码的大致注释

下面大致介绍下几何体(Geometry)和节点(Node)的区别JME文档中定义如下:1、Geometry是一个可视的一个3D物体,而Node则是一个不可见的handle(不知怎么翻译。。。)2、Geometry用来存放一个物体的外形,而Node则把其他Geometries或Node集中到一起3、Geometry可以是一个立方体、玩家、球体、建筑物、地形等等,而Node默认一般是rootNode还有其它的比如guiNode等

转载于:https://www.cnblogs.com/zpfly/archive/2011/05/24/2056076.html

jme之Hello Node相关推荐

  1. JME 3 入门教程 3 - Hello Assets

    前一节: Hello Node,下一节: Hello Update Loop 本节教程中,我们将学习如何使用jME asset manager(jME资源管理器)向场景图加载3-D模型和文字,并将了解 ...

  2. LeetCode19. Remove Nth Node From End of List 删除链表中的倒数第n个位置的元素

    前言 本文是LeetCode19. Remove Nth Node From End of List解法,这个题目需要删除链表中的倒数第n个位置的元素 代码 # -*- coding: utf-8 - ...

  3. Node.js 简单入门

    目录 一. 什么是Nodejs 二. Nodejs组成图(对比jdk) 三. Nodejs的安装 四. 第一个Nodejs程序 五. Node实现请求响应 六. Node操作MYSQL数据库 1. 安 ...

  4. CentOS7的node.js安装

    一.方式1:yum安装 这里我们指定安装8.x以上的版本 curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo ba ...

  5. Node搭建多人聊天室

    博客初期准备使用的通讯,后被荒废. 使用的是nodejs-websocket,未使用socket.io 用来玩玩的东西,了解下通讯协议. 演示地址:socket.amayaliu.cn git地址:h ...

  6. node.js(四)小结

    用之前的内容写一个简单的注册登录 const http = require('http') const urlLib = require('url') const fs = require('fs') ...

  7. node.js(node.js+mongoose小案例)_实现简单的注册登录退出

    一.前言 通过node.js基本知识对node.js基本知识的一个简单应用 1.注册 2.登录 3.退出 二.基本内容 1.项目结构搭建如图所示 2.这个小案列中用到了art-template子模板以 ...

  8. node、Mongo项目如何前后端分离提供接口给前端

    node接口编写,vue-cli代理接口方法  通常前端使用的MocK 数据的方法,去模拟假的数据,但是如果有node Mongodb 去写数据的话就不需要在去mock 数据了,具体的方法如下. 首先 ...

  9. linux安装语言总是waiting,node的serialport在arm的Linux安装血泪史之我太难了

    0.序 本人在arm的Linux系统上serialport耗时5天,现在想想都头皮发麻! 下面我简单说一下过程,由于error时没有截图留档,关于出现的error,我就用语言描述一下,要是有什么不理解 ...

最新文章

  1. 浅谈Transformer 及Attention网络
  2. 人工智能电磁车模如何入手?
  3. 解决:夜神模拟器连不上adb的问题
  4. 3.13. Notepad++中Windows,Unix,Mac三种格式之间的转换
  5. spring官方网站
  6. kettle分批处理大表数据_采用Kettle分页处理大数据量抽取任务
  7. stucts2 页面上的值如何与Action的属性值对应
  8. Ubuntu扩大boot空间
  9. eclipse console 输出数据量大时不完整问题
  10. PHP 通过PHPMailer发送邮件
  11. java gbk编码_java 中文转GBK码
  12. ArcGIS导出shape地图边界点数据
  13. 如何理解原码一位乘法的计算过程
  14. 学习云计算就业方向有哪些 一般薪资能拿多少
  15. 对于rpx的理解和使用
  16. netlink编程注意事项
  17. solrcloud入门详细使用教程
  18. 推荐 :35个国内外社会科学数据网站资源汇总(附链接)
  19. python荣联云通讯短信平台
  20. 在C语言中使用二分法算法思想解决猜商品价格问题

热门文章

  1. 轻量化AlphaPose
  2. linux性能优化——利用perf火焰图分析内核调用
  3. 开灯问题_谁会一直开灯
  4. 计算机按键不灵怎么回事,电脑键盘失灵,教您电脑键盘失灵怎么办
  5. 这类保险看起来很好,我却不推荐。
  6. Java基础学习笔记(二)_Java核心技术(进阶)
  7. swagger工具编写接口文档
  8. FreeIPA框架常用命令合集
  9. 浏览器和服务器之间的通信
  10. 爆破无线路由器管理页面登录密码