- 浏览: 15492 次
- 性别:
- 来自: 武汉
最新评论
-
qindongliang1922:
不错,加油,看了一下官网,这个框架最近才开发出来的,目前还没有 ...
最近的成果
文章列表
编程语言都相当多的共性,分享一下学习经验。就编程语言而言,我一般对它们内涵的知识进行分层,然后选择学习。
初级:语法(必须掌握)
中级:常用功能(建议掌握)
高级:专业领域(建议选学)
知识体系很总要!知识体系很总要!知识体系很总要!重要的话要说三遍!
没有知识体系,你根本不知道自己有多少东西要学,为什么要学,到底学会了没有!
初级:语法
指的是“类型、变量、表达式、符号、关键字、选择、判断、分支、循环、函数、闭包、注释”等一系列最基础的内容,自学任何语言都要优先掌握。
中级:常用功能
这部分内容通常包含“I/O、图形、多线程、网络、数据 ...
jME中文论坛:http://bbs.jmecn.net
jME中文网:http://www.jmecn.net
基于导航网格的A星寻路(Navigation mesh)
Posted on 2010-09-26 13:00 Zhiyett 阅读(7024) 评论(14) 编辑 收藏
最近花了几个月的时间实现了导航网格寻路和导航网格自动生成。
□导航网格数据结构定义
由于数据之间有着层级关系,所以 ...
折腾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)资源加载、资源定位 ...
游戏一共有8个State:
Intro、Loading、UserLogin、ServerList、SelectHero、CreateHero、InGame、Quit
其中Loading是一个特殊的State,不同State切换时若需要加载资源,就会通过Loading来中转。
状态基本事件流如下:
Intro->UserLogin->ServerList->SelectHero->InGame->Quit
扩展流:
SelectHero->CreateHero
SelectHero->ServerList
SelectHero->UserLogi ...
JME3没有直接提供改变屏幕大小的接口,我们可以通过settings来修改参数,然后调用Application的restart()方法来使这些参数生效。restart()方法源码是这么说的:
/**
* Restarts the context, applying any changed settings.
* <p>
* Changes to the {@link AppSettings} of this Application are not
* applied immediately; calling this metho ...
最近粗略地看了一下com.jme3.animation包下的源码,有一点点理解,不过也不一定对。反正以后也还要接着继续研究,先总结在这里做个备忘录。
一、JME3支持的动画类型
JME3目前只支持骨骼动画和节点动画。虽然它貌似也曾经实现过关键帧动画(有一个PoseTrack类),但是现在废弃了。JME3最重视的还是骨骼动画,看看animation包下面专门定义了Skeleton、Bone、BoneTrack等那么多类就可想而知。
二、骨骼动画相关知识
由于我以前从来没有学习过3D动画知识,所以有一些基本的数学原理不太懂,最近也差了一些资料。
下面几个帖子非常有学习价值:
骨骼蒙皮动画(S ...
系列目录:
JME3资源管理之一:核心组件介绍
JME3资源管理之二:AssetLoader和AssetLocator
JME3资源管理之三:资源加载流程
JME3资源管理之四:心得和小节
1、加密资源包
有时候我们需要对游戏资源进行打包、加密。那么使用这些资 ...
系列目录:
JME3资源管理之一:核心组件介绍
JME3资源管理之二:AssetLoader和AssetLocator
JME3资源管理之三:资源加载流程
JME3资源管理之四:心得和小节
JME3在加载资源的过程中,AssetManager会先根据AssetKey去缓存中查找资源,如果找得到的话当然皆大欢喜,找不到的话才会去读取磁盘。
具体加载的流程是这样的:
1、在缓存中查找资源
检查AssetCache中的资源,若找不到就进行下一步,若找到就直接返回了。
AssetCache cache = handler.getCache(key.getCacheType());
...
系列目录:
JME3资源管理之一:核心组件介绍
JME3资源管理之二:AssetLoader和AssetLocator
JME3资源管理之三:资源加载流程
JME3资源管理之四:心得和小节
AssetManager加载资源前,首先要注册各种AssetLoader和AssetLocator,否则AssetManager将不知道怎么去加载资源。
1、注册AssetLoader
AssetLoader保存在一个map中,通过后缀名来匹配。如果2个AssetLoader都注册了同样的后缀名,那么后注册的AssetLoader会挤掉先定义的AssetLoader。
am.registerLo ...
系列目录:
JME3资源管理之一:核心组件介绍
JME3资源管理之二:AssetLoader和AssetLocator
JME3资源管理之三:资源加载流程
JME3资源管理之四:心得和小节
1、AssetManager
这是JME3资源管理器的核心接口,它提供了统一的方式来管理各种 ...
JME3提供了Curve类,用于生成曲线网格。利用它可以很容易绘制3维空间曲线。
package com.ruanko.jme3;
import java.util.Random;
import com.jme3.app.SimpleApplication;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.FastMath;
i ...
神说要有光
要分白天和黑夜
要有日月星辰,昼夜交替出现
要有天空,空中的云要随风飘动
要有四季,春夏秋冬交替变化
要有时节变化,不同的季节有不同的天气,晴天风雨雷电冰霜随之变化。
先放一些资料在这里。
how-to-moving-clouds
skydome by t0neg0d
volumetric-lighting-filter-wip
seeking-alpha-testers-for-skycontrol
tryout-a-new-skydom
skycontrol-enters-beta-test
我希望在游戏中能够有昼夜变化,四季变化,这样就意味着游戏中将会有一套自己的时间算法。假设游戏中时间流逝的速度为现实世界的30倍,那么一天就等于在游戏中过了一个月。
随着游戏中时间的变化,会有日出和日落,也会有四季变化。不同的时刻,太阳光照的角度不同,人在地上的影子方向也不一样。比如夏天太阳高度会高一些,冬天则会低一些。
我把游戏世界的位置定位在地球北纬30°(跟武汉一样),那么一年中,春分和秋分两个节气的中午12时,太阳日照高度就是60°。夏至和冬至的太阳高度则要分别加减黄赤夹角(23°26′),为83.5°和36.5°。
我假设游戏中地球公转轨迹是一个非常完美的圆形,那么太阳的高度变 ...