学习JME3的第一次小结

1 篇文章 0 订阅
1 篇文章 0 订阅
折腾JME3已经有一段时间了,目前已经基本掌握了这么几个技能:
1、3D数学知识
(1)用向量Vector3f、Vector2f、Vector4f表示顶点、位移、方向、速度等;
(2)用矩阵Matrix3f、Matrix4f描述空间变换;
(3)用四元数(Quaternion)描述旋转轴和旋转角度;
(4)3D模型概念Spatial、Node、Geometry、Mesh、Material、Texture;
(5)场景树rootNode
(6)Tranlation、Rotate、Scale
2、游戏资源管理
(1)3D模型、天空盒、音乐、贴图、动画等资源文件的加载和使用。
(2)资源加载、资源定位和资源打包
(3)使用AssetLoader加载自定义资源格式
3、GUI
(1)Nifty-gui
(2)tonegod-gui
(3)Picture类的使用
(4)BitmapFont字体制作
(5)在内存中直接操作jme3的Image对象,进行计算机图形学运算:灰度、二值化、Alpha通道等处理
4、动画
(1)动画控制:AnimData、AnimControl、AnimChannel
(2)骨骼动画:Bone、Skeleton、Track、Keyframe
5、特效
(1)光影
(2)水反
6、物理
(1)理解物理空间、碰撞箱、刚体/软体等概念
(2)熟悉了Bullet物理引擎在JME3中的用法
7、游戏核心(core)
(1)Application和SimpleApplication的应用程序生命周期
(2)AppStates、Control生命周期
8、输入/输出
(1)InputManager
(2)按键绑定、事件监听器
(3)键盘输入汉字
(4)对象持久化:Savable/Readable接口,序列化和反序列化

目前客户端技术基本上看了一圈,暂时不深入研究了,开始考虑游戏的逻辑结构。
除了JME3以外,接下来还要开始研究这么几个技术:
1、实体系统框架 Entity-System Framework
http://www.richardlord.net/blog/what-is-an-entity-framework
http://www.richardlord.net/blog/why-use-an-entity-framework
2、Marauroa,一款用Java语言编写的开源MMORPG游戏框架
http://sourceforge.net/projects/arianne/files/marauroa/
3、Stendhal,使用Marauroa开发的游戏
https://stendhalgame.org/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要使用Java的ZipInputStream类来解压缩zip文件,并使用jme3的AssetManager类来加载FBX文件。以下是一个可能的实现: ```java import java.io.InputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import com.jme3.asset.AssetManager; import com.jme3.scene.Mesh; import com.jme3.scene.VertexBuffer; public class FbxProcessor { private AssetManager assetManager; public FbxProcessor(AssetManager assetManager) { this.assetManager = assetManager; } public void processZipFile(InputStream zipFile) throws Exception { ZipInputStream zip = new ZipInputStream(zipFile); ZipEntry entry; while ((entry = zip.getNextEntry()) != null) { String name = entry.getName(); if (name.toLowerCase().endsWith(".fbx")) { Mesh mesh = assetManager.loadAsset(name, Mesh.class); int numFaces = mesh.getVertexCount() / 3; System.out.println("FBX file " + name + " has " + numFaces + " faces."); if (numFaces > 1000) { System.out.println("This is a high-quality FBX file."); } else { System.out.println("This is not a high-quality FBX file."); } // Do more processing on the mesh as needed } } } } ``` 其中,`processZipFile()`方法接受一个输入流,该输入流代表一个zip文件。在方法内部,我们遍历zip文件中的每个条目,并检查它是否以`.fbx`结尾。如果是,我们使用`AssetManager`来加载FBX文件,并计算FBX文件中的面数。最后,我们根据面数的数量来判断FBX文件是否是高质量的。 请注意,此代码可能需要进行调整以适应您的具体情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值