惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
有赞技术团队
有赞技术团队
J
Java Code Geeks
H
Hackread – Cybersecurity News, Data Breaches, AI and More
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Check Point Blog
博客园 - 【当耐特】
The GitHub Blog
The GitHub Blog
Recent Announcements
Recent Announcements
The Cloudflare Blog
Microsoft Azure Blog
Microsoft Azure Blog
腾讯CDC
Vercel News
Vercel News
IT之家
IT之家
MyScale Blog
MyScale Blog
博客园_首页
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
罗磊的独立博客

博客园 - AppleSeeker(冯峰)

XNA游戏开发——播放音效(2) XNA游戏开发——播放音效(1) 公告板 粒子系统介绍 在游戏框架中实现天空体 创建天空体 天空体介绍 添加雾化效果 实现追踪摄像机 创建一个追踪摄像机(2) 创建一个追踪摄像机(1) 相机定位 XNA——相机类 XNA——使用摄像机 在游戏框架中添加支持 渲染已保存的几何图形 将已保存的几何图形导入到XNA项目中 导出3D几何体 导入几何图形——SketchUp介绍
使用追踪相机
AppleSeeker(冯峰) · 2012-06-09 · via 博客园 - AppleSeeker(冯峰)

现在你已准备好去飞行,那让我们做一些过去小的游戏的变化,然后看看它的外观。

ResetGame方法创建纸飞机对象并存储它到一个称为_plane类级变量中,为了以后能方便的访问。创建相机后,在初始化后,是没有追踪对象的。因此,相机位置服从手动提供的转换而不是跟随飞机。

当工程运行后,初始化配置就出现了。房屋和飞机是可见的,但相机缓慢围绕场景。在游戏的CameraObject.Update函数中使用简单的旋转和转化矩阵来处理相机移动路径。

当玩家轻拍下屏幕,然而,我们激活了追踪摄像机。游戏类的Update方法中检查屏幕的轻拍,每一次发现,它都将增加下一次的4个相机配置。以下代码将描述如何激活追踪相机。

// Follow  the  plane from behind 
Camera.ChaseObject = _plane; 
Camera.ChaseDistance = 1; 
Camera.ChaseElevation = 0.3f;

事实上所有所需的都将用这个方法设置给相机。唯一的变化是需要我们的CameraObject.Update函数:如果它检测到追逐相机是活动状态的(相机的ChaseObject不等于null),它简单调用基类,然后返回。任何相机代码的进一步的转换会干扰或整个代替相机自己的视角设置转换。

一旦如果你运行工程并轻拍屏幕,你将看到完全效果的追逐相机。在这个模式下的工程运行后的截图,如图所示。

image

第二次轻拍屏幕,相机就会回到飞机的前面,向后看。这是通过设置相机的ChaseDistance为负值来简单的实现(这个情况下为-1)。请记住,虽然飞机知道它的飞行路径并且在它的未来可以计算出坐标,但相机并不知道它的未来坐标,却任然正确的位于它前面位置。能够没有未来信息却能设置它的坐标是重要的,如果对象是玩家控制的,它将不可能预测出未来的移动。

第三次轻拍屏幕来激活最后的模式,它显示第一个人称相机,通过设置ChaseDistance为0来激活。这是一个我们必须要做的很小的改变为了将这个做的更好:直接将这个相机放到飞行位置导致一个飞行的前半部分的剪辑图片被渲染,这看起来很奇怪—对于第一人称相机,我们根本并不想去渲染飞行。

为了解决这个第一人称渲染问题,我们在PaperPlaneObject.Draw方法中做了小的改变。如果它检测到它是相机的ChaseObject并且相机的ChaseDistance为0时,它不会绘制而返回。

为了好玩些,我们可以添加一些其它的飞行物到场景中。

posted on 2012-06-09 11:48  AppleSeeker(冯峰)  阅读(713)  评论()    收藏  举报