查看: 1801|回复: 0
打印 上一主题 下一主题

【Flare3D创建黄色星球】将惊险理念融入游戏逻辑_步骤8

[复制链接]

5472

主题

6

听众

1万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
76544
精华
23

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

跳转到指定楼层
楼主
发表于 2013-3-3 10:46:22 |只看该作者 |倒序浏览
步骤 8:将惊险理念融入游戏逻辑 YellowPlanet_08.as 包含本节描述的代码。
现在,游戏的确变得赏心悦目。 你已经进入了添加有趣部件的阶段以便使得游戏变得更加引人入胜。 在本节中,你将添加能够允许宇航员角色杀死敌人、死亡和飞行的代码。
这些均是能够为游戏带来生气的冒险和诱惑理念。 你将会继续使用相应的游戏逻辑不断地将新的功能融合到游戏中。
此刻也是将控制风扇和地雷的行为移植到一个名称为 gameObjects的新函数的时候了。
管理状态和游戏变量
在游戏逻辑变量中创建一个新游戏变量,将其命名为 shakeFactor:
// Game logics variables.private var state:String = &quot***n";private var jumpValue:Number = 0;private var shakeFactor:Number;
在宇航员死亡时,你将使用 shakeFactor 变量摇晃相机并且生成一种特殊效果。
了解 gameObjectsgameObjects 的行为与 gameLogics 类似,因为在每次 Update 重复操作时均调用 gameObjects 方法。 该函数通过比较宇航员角色和 scene 中其它元素之间的距离获取宇航员的当前位置并且更新游戏状态。
处理风扇碰撞
如果宇航员与风扇之间的距离小于风扇的半径,则游戏的状态被更改为 "fan" 并且在下次调用 gameLogics 方法时宇航员将被发射到太空(参见图14)。
图 14. 如果宇航员离风扇太近,则将会导致宇航员飞入太空
// changes the state to "fan" if ( Vector3D.distance( f.getPosition(),position ) < radius ) state = "fan";
处理地雷碰撞
如果宇航员与地雷之间的距离小于10个单位,则游戏逻辑使用状态变量的值来设置一个具有下面两种可能的结果:
• State = "jump" – 结果是宇航员跃过地雷并且地雷被摧毁。m.visible = false;shakeFactor = 2;• State = &quot***n" –结果是宇航员与地雷相撞并且宇航员死亡(参见图15)。
container.visible = false;shakeFactor = 15;state = "die";
图15. 如果宇航员在运行状态时与地雷相撞,则宇航员死亡
重新激活销毁的地雷每次地雷被摧毁时,它将被重新安置到行星的另一侧。 之后,必须重新激活它。
为了检测地雷是否位于行星的另一侧,你可以将每个地雷的 Up 矢量与宇航员的当前Up矢量进行比较。 如果你使用 dotProduct 将这两个矢量相乘,并且它们均指向相同的方向,则结果是一个正的数值,这表示宇航员和地雷均位于行星的同一侧。 如果比较之后计算出两个矢量指向不同方向,则结果是一个负值,因为地雷的位置与宇航员的位置相距很远(参见图16)。
//This line gets the mine Up vectorvar mineUp:Vector3D = m.getUp();//This line gets astronaut Up vectorvar contUp:Vector3D = container.getUp();//Here compare the vector and re-activate themine if result is great than zero.if ( mineUp.dotProduct( contUp ) < 0 ) m.visible= ***e; 图16. 将 A 与 B 相乘得出一个正值;如果将 A 与 C 相乘,你将得出一个负值,这表示地雷位于行星的另一侧
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-16 14:42 , Processed in 0.145634 second(s), 31 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部