jME3初级教程

第十七章:户外场景

本章我们将会学习如何在3D游戏中制作户外场景,包括天空、海洋、地形等。 天空 3D游戏中的天空有很多实现方法,总的来说,皆是障眼法。最简单的手法不过是改变画面的背景色,让玩家“感觉”到天色的变化。 如果在玩家头顶上放置一个平面,再把云朵、太阳、星星、月亮等图片“贴”上去,就可以混合成类似下面的效果。 这种技术称为“天空面(SkyPlane)”。 显然,这种方法是很容易露馅的。当玩家的视野足够远时, ...

第十六章:物理引擎

牛顿的苹果 长久以来,哲学领域有一个争论不休的话题,就是这个世界有没有独立意志? 有一种观点认为世界是有意志的,但是它的意志与人的表现形式不同。天道无私,对世间万物并无任何偏爱。另一种观点认为世界是无意识的,它的背后并无一个主宰来决定应该怎么做,只是按照大道规则自然运转。事实上这是一个无法证伪的问题,因为具有独立意志,就意味着不需要任何外在来证明其存在。 这个问题只对思考它的人有意义,最终取决于人们如何与世界相处。世界孕育了各种生灵,其中人类天生便开启了灵智。如果我们有意识,那这个孕育了我们的世界呢? 汉语中有个话说得很有意思,叫做“采天地之灵气,吸日月之精华”。很多人幻想世界上有种看不见摸不着的“灵气” ...

第十五章:碰撞检测

碰撞与相交 碰撞检测这个词通常有两种含义,一种是物理意义上的碰撞检测,另一种是数学意义上的碰撞检测。本章讨论的是纯数学的碰撞检测,即判断物体之间是否相交(或包含、重合)、计算交点、预测相交时刻等。“物理引擎”则是在碰撞检测的基础上又增加了“物理”因素,模拟力与力之间的相互作用,这个内容将在下一章讨论。 显而易见,数学碰撞检测比物理碰撞检测的速度要快,而且消耗的内存也更少,因为压根就不用考虑质量、能量、动量、速度、加速度等物理因素。类似于鼠标拾取、视线范围等功能, ...

第十四章:特效

在jMonkeyEngine中,我们有3种实现特殊视觉效果的工具。 后期滤镜 FilterPostProcessor & Filter 场景处理器 SceneProcessor 粒子发射器 PraticleEmitter 后期滤镜 在游戏场景渲染完成后,我们可以使用滤镜(Filter)对画面进一步加工。在3D游戏中,下列效果通常都是用滤镜来实现的: 雾化(Fog) 马赛克(Mosaic) 玻璃(Glass) 雨雪(Rain / Snow) ...

第十三章:控制游戏逻辑

导读:《入门:游戏主循环》 【转载】入门:游戏主循环 引言 主循环是一款游戏或者框架的核心以及基础,它会让游戏以及动画看起来是在做实时的运行。几乎所有游戏(除了回合制等几种类型以外)都要基于主循环以及精确的时间控制。 下面就是一个最基本的主循环示例代码: 先定义一个简单的游戏引擎接口,声明游戏的基本生命周期。 package net.jmecn.logic; /** * 一个简单的游戏引擎接口 * * @author yanmaoyuan * */ public interface IGameEngine { // 初始化 ...