查看: 2225|回复: 4
打印 上一主题 下一主题

【Flare3D创建黄色星球】放置相机_步骤3

[复制链接]

5472

主题

6

听众

1万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
76544
精华
23

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

跳转到指定楼层
楼主
发表于 2013-3-3 10:26:35 |只看该作者 |倒序浏览
步骤 3:放置相机
YellowPlanet_03.as 包含本节描述的代码。下面,你将研究如何利用 Flare3D 控制相机。 此外,你还将学习一些基本的相机操作理念。 目前,你可以使用许多不同的策略来控制相机的位置。 本节将介绍两个能够简化这一过程的用于 3D 游戏的函数。
查看宇航员(Astronaut)容器
如果你检查 YellowPlanet_03.as 中的代码,你将会注意到Astronaut 被包裹于一个 Pivot3D 对象中。
目前,这一步骤看起来似乎没有必要。 但在将来,它在必要时能够便于更好地控制 astronaut。
查看下列代码,以便了解如何更好地控制 astronaut 的显示: // This creates an empty 3D container and addsthe astronaut to it.container = new Pivot3D();container.addChild( astronaut );//Adds the container to the scene too, otherwise//the objects will not be present on the scene.scene.addChild( container );
使用 setPositionWithReference 设置相机位置
在本范例项目游戏中,宇航员可以在行星上行走。 因此,相机必须能够跟踪他。 通过引用宇航员的当前位置可以现实这一相机行为。你可以使用 setPositionWithReference 来完成这一任务。 这一方法包含于 Pivot3DUtils 之中,而且它允许你确定一个对象与用作引用的另一个对象之间的相对位置。 这意味着你可以对任一与其它对象相关的对象进行转换。
在本游戏中,相机总是位于宇航员之后。 它可以保持与宇航员的相对位置。 相机(与其它在 scene 中的对象一样)具有一个定义其位置和方向的坐标轴。 坐标轴的方向如图 5 所示。
图5. 对象的坐标轴方向
+Z 指向宇航员的方向,而 +Y 指向正上方。 这些矢量被分别称为Up、Dir 和 Right(参见图6)。 图6. Up、Dir 和 Right 的矢量角
假定每个对象具有其自己的坐标轴,下面的代码行将相机相对于宇航员的位置设置为 up (+Y) 80 单位 away (-Z) 20 单位:Pivot3DUtils.setPositionWithReference( scene.camera, 0, 80, -20, container, 0.1 );
正如你看到的那样,通过使用 Flare3D 和一个单行代码即可解决一个复杂的任务。
使用 lookAtWithReference 设置相机的方位在相机处于正确的位置之后,镜头需要对准正确的方向。 使用与通过参考点设置对象的位置相同的策略,你也可以使用参考点寻找游戏中的特定点。
这一方法具有一个名称为 'up' 的附加和可选参数,它是本游戏必需的参数。
通常,Up 矢量总是指向正上方。 在许多情形下,传递一个 null 值即可使得 Flare3D 为你计算该矢量的值(参见图7)。
图7. 控制相机的方位
然而,设想下面的范例:如果你抬起你的手并且利用你的食指指向一个对象,就像一把手枪一样,则你的拇指将自动指向正上方,这是我们期望的结果。 此时已经定义了 Dir 和 Up 矢量。 现在,在你仍然将食指指向相同对象的同时,试图旋转你的手。 在它旋转的过程中,Up 手指(你的拇指)开始改变其方向。 注意,即使你总是保持你的手指向相同方向,但在你旋转你的手的过程中,Up 矢量将会移动。 为了对相机进行编程,以便它能够知道哪个方向是正上方,你需要使用 up 参数。
在本范例游戏中,相机位于宇航员的上方。 相机必须设置为指向下方,以便能够朝向宇航员。 相机的 Up 矢量应该指向宇航员的 Dir矢量(参见图8)。
Pivot3DUtils.lookAtWithReference( scene.camera, 0,0, 0, container, container.getDir(), 0.05 );
图 8. 当 Up 矢量改变时,相机的方位也将随着改变
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

无效楼层,该帖已经被删除

0

主题

1

听众

2458

积分

中级设计师

Rank: 5Rank: 5

纳金币
0
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2014-2-22 15:25:31 |只看该作者
好东西啊,感谢分享
回复

使用道具 举报

0

主题

2

听众

3238

积分

中级设计师

Rank: 5Rank: 5

纳金币
0
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2014-2-28 11:57:50 |只看该作者
感谢分享
回复

使用道具 举报

0

主题

2

听众

3238

积分

中级设计师

Rank: 5Rank: 5

纳金币
0
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2014-4-30 09:02:51 |只看该作者
感谢分享!
回复

使用道具 举报

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

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

GMT+8, 2024-9-20 14:54 , Processed in 0.084265 second(s), 31 queries .

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

© 2008-2019 Narkii Inc.

回顶部