iH5开创国内首个可视化物理引擎!打造超真实的重力和弹力效果!
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
iH5开创国内首个可视化物理引擎!打造超真实的重力和弹力效果!
最近,H5界一向和平共处的小球、冰块和碗打起了架,小编我忍不住吃了一“鲸”,这年代,碰瓷还敢当着iH5的面?
据说这一切都是因为一个叫物理引擎的玩意儿……
物理引擎是什么?
物理引擎是一种仿真程序,可用来创建一种虚拟环境,在其中集成来自物理世界的规律。在这个虚拟的环境中包括的物体,除了物体之间的相互作用(比如碰撞)外,还包括施加到它们身上的力(比如重力)。物理引擎可在仿真环境内模拟牛顿物理学并处理这些力和相互作用。
(小球OS:简单点说,我虽住在虚拟空间,但别以为我只是一张图,我也可以是个有重力、敢碰撞的勇敢的ball!)
为什么要用物理引擎?
让H5中的物体可以像真实世界中的物体一样运动、碰撞,其作用在H5游戏中表现尤为突出,iH5能利用物理引擎打造属于自己的物理世界。
物理引擎所需的工具有哪些?
1、画布:物理引擎需要配合iH5的画布功能使用,因此使用前应先在iH5编辑器舞台下添加一个舞台大小的画布(640*1040)。(必备)
2、物理世界:定义整个物理虚拟世界的属性。(必备)
3、物体:定义画布中各实物的物理属性。(选择项)
4、碰撞探测器:检测物体之间是否产生了碰撞。(选择项)
以下重点介绍物理世界、物体和碰撞检测器三种工具。Are you ready?Go!
1、物理世界:定义整个物理虚拟世界的属性
操作步骤:在iH5编辑器功能画布下添加“物理世界”工具即可。
重要属性介绍:
(1)水平方向重力:默认为0,设置其他数值后物体在水平方向上会有重力偏向。
(2)垂直方向重力:重力越大,物体下落速度越快。(水平方向重力、垂直方向重力均设为0,可以模拟出无重力的太空效果)
(3)自动计算重力方向:开启自动重力属性后,将根据手机平面方向自动模拟重力环境(支持苹果和大多数安卓手机,部分旧版无陀螺仪设备安卓手机无法支持)
(4)北墙、南墙、东墙、西墙:决定物体是否可以飞出边界。若物体飞出去了,默认将其自动删除,可以减少系统中不必要的运算量。
(5)物体碰撞弹力:0%——弹性很小,物体碰撞后好像黏在一起,并没有太大的弹射;100%——弹性很大,物体碰撞后会快速弹开。
(6)摩擦力:0%——物体之间无摩擦力,很滑;100%——物体难以拖动,运动速度较慢。
(7)边界宽度:控制自动删除物体的宽度,一般比舞台的宽度大。边界越大,物体碰触到边界(被删除)的范围就越大,通常设为100。
(8)自动休眠:当物体的运动速度慢到一定程度时,决定物体是否会停下来。
2、物体:定义画布中各实物的物理属性
操作步骤:选中对象(实物图片),在对象下添加“物体”,绘制物体碰撞边界(多边形/圆形碰撞边界),画完后可以微调。
注意事项:(1)绘制圆形物体的边界时,选择“使用圆形碰撞边界”,保证边界与物体本身的吻合度;
(2)实物(如碗)有两层时,绘制碰撞边界时要画两层边框,且两层之间要保有缝隙,不能交叉;
(3)不要修改物体的原点坐标。
重要属性介绍:
(1)质量:代表物体的质量。物体的质量大小不同,碰撞效果也会不同。质量小的比较轻,容易弹,质量大的相反。当质量设置为0时,物体不受重力影响,被其他物体碰撞后不会晃动;当质量设置为非常大的数值时,被其他物体碰撞后晃动幅度较小。
(2)水平方向/垂直速度、初始角速度:运动的物体初始情况下的速度(像素/秒)。设置初速度后,拖动物体会发现其有一个运动的初速度,碰撞到其他物体后运动速度会变化。
(3)固定X坐标、固定Y坐标、固定旋转角度:决定物体被碰撞时是否会变动坐标或旋转角度。
(4)运动阻力、旋转阻力:物体运动或旋转时受到的阻力大小。阻力越大,物体碰撞后停下的速度越快。
(5)属于碰撞组、能够与哪些组碰撞:定义物体的碰撞组以及它们能够和哪些其他碰撞组中的对象碰撞。运用碰撞组可以减少运算量,提升运算速度。
示例:
表示碰撞组3中的物体,可以和碰撞组1、碰撞组2中的物体碰撞,碰撞组3中的物体不会相互碰撞。
表示碰撞组3中的物体,可以和碰撞组1、碰撞组2中的物体碰撞,同时碰撞组3中的物体也可以互相碰撞。
注意!碰撞关系必须是双向的,一厢情愿的物体无法碰撞。假设碰撞组1中的物体,可以和碰撞组2中的物体碰撞,那么,相应地,在对碰撞组2设置时,也要允许碰撞组2中的物体和碰撞组1碰撞。
(6)重力放大倍数:定义重力放大的倍数,可单独控制每个物体的重力影响(如设为负数则重力方向相反)。
(7)自动删除:决定物体飞出边界后是否会被自动删除。
3、碰撞检测器:检测物体之间是否产生了碰撞
操作步骤:选中对象(实物图片),在对象下添加“碰撞检测器”,绘制物体碰撞边界(多边形/圆形碰撞边界),画完后可以微调。
“碰撞检测器”的属性与“物体”的属性相同,可参见前面的描述。其主要作用是检测物体是否产生了碰撞,可应用于各种游戏中检测物体的位置和状态。
物体VS碰撞检测器:
共同点:属性设置基本相同(物体和碰撞检测器,每个图片只能加其中一个)不同点:两者触发的反应不一样。采用“物体”工具,物体之间碰撞会产生反弹;采用“碰撞检测器”工具的物体与其他物体(如小球)碰撞时,小球会从该物体中“穿越”,并不会产生物体反弹效果。
终于明白了物理引擎为何物,你是不是已经跃跃欲试了呢!以下是相关教学视频合辑,从初阶到高阶,我们一起打怪升级吧!
[教程放送]
iH5初阶新手上路:
《物理引擎教学》《碰撞事件》《自定义碰撞组》
iH5中阶升级攻略:《乒乓球》
iH5高阶BOOS挑战:《重力小球迷宫》