摘要:
问题 在大多数情况中,你想在多个图像的上面绘制另一张图像。主要问题是,如果所有的图像都是完全覆盖屏幕的,那么它们就会覆盖前面的一张图像。你还要确保首先绘制背景图像。 解决方案 使用XNA,你可以指定层(layer),或者说图像的绘制深度。位于最大深度的图像会被首先绘制。 大多数图像格式支持透明。这意味着除了包含红、绿、蓝的颜色信息,它还包含alpha信息。当开启透明时,图像的透明区域会显示图像下面...
阅读全文
posted @ 2010-11-16 15:09
AlexCheng
阅读(368)
推荐(0)
摘要:
问题 在将图像绘制到屏幕前你想对它进行旋转,缩放或镜像操作。 解决方案 SpriteBatch 类(见前一个教程)的Draw方法的不同重载可以让你很简单地进行上述操作。 工作原理 旋转/缩放/镜像一个图像 SpriteBatch.Draw方法有几个有用的重载。下面是最复杂的一个重载方法,参数会在后面加以讨论: public void Draw (Texture2D texture,Vector2...
阅读全文
posted @ 2010-11-16 14:41
AlexCheng
阅读(754)
推荐(0)
摘要:
问题 你想将一张2D图像绘制到屏幕中以创建一个2D游戏或作为3D游戏的用户界面。你想有一个简单界面可以指定图像显示在屏幕上的位置。 解决方案 XNA Framework已经以SpriteBatch类的形式提供了这个功能,它可以以一个有效率的方式绘制图像。 虽然SpriteBatch的设计以易用性为优先考虑,但它也允许你可以选择一些优化性能的方法,你会在这个教程中看到详细介绍。 注意:因为每个图像是...
阅读全文
posted @ 2010-11-16 11:25
AlexCheng
阅读(490)
推荐(0)
摘要:
解决SupeSite聚合Discuz提示论坛路径设置错误 在SupeSite的文件路径下找到admin文件夹,打开admin_bbs.php文件 查找到下面一行代码: $txt = sreadfile($_SC['bbsurl'].'/viewthread.php', 'r', 1); 修改为如下: $txt = sreadfile($_POST['bbsurl'].'/index.php',...
阅读全文
posted @ 2010-10-26 10:10
AlexCheng
阅读(237)
推荐(0)
摘要:
DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))); //本周周一 DateTime endWeek = startWeek.AddDays(6); //本周周日 DateTime startMonth ...
阅读全文
posted @ 2010-10-25 10:18
AlexCheng
阅读(652)
推荐(0)
摘要:
2.14 编写自定义内容导入器 问题 你想通过内容管道将一个自定义格式的文件导入到XNA项目中。因为你的文件的扩展名和/或结构与XNA支持的文件格式不同,默认XNA内容管道无法知道如何导入并处理你的文件。 解决方案 你需要编写一个自定义内容导入器,它可以从磁盘中读取文件,将有用的数据格式化为一个对象,做好被内容处理器处理的准备。因此,这个教程假设你知道如何创建自己的内容处理器,可以参见教程...
阅读全文
posted @ 2010-10-23 10:19
AlexCheng
阅读(202)
推荐(0)
摘要:
2.13 创建一个模糊(Blur),(发光)Glow Post-Processing Effect 问题 你想在最终图像上添加模糊效果,或给场景中的物体添加光泽。 解决方案 这两个effect都是post-processing effect。可参见前面的教程学习如何建立一个post-processing框架。 你可以通过计算每个像素和一些周围像素的颜色值平均值并用这些值替换像素的原始颜色...
阅读全文
posted @ 2010-10-23 10:14
AlexCheng
阅读(497)
推荐(0)
摘要:
2.12 创建一个Post-Processing Framework 问题 你想在最终的图像上添加一个2D post-processing effect,诸如模糊,扭曲,摇晃,变焦,边缘检测等。 解决方案 首先将2D或3D场景绘制到屏幕,在Draw过程的最后,在后备缓冲的内容还没有发送到屏幕前,你需要将这个后备缓冲的内容存储在一张2D图像中,解释请见教程3-8。 然后,将这张2D图像绘制...
阅读全文
posted @ 2010-10-23 10:04
AlexCheng
阅读(458)
推荐(0)
摘要:
2.11 创建一个ROAM地形 问题 虽然你可以使用前一个教程的四叉树技术让XNA只绘制在相机视野中的地形小块,这个方法还不是最好的。那些远离相机的方块仍会以离相机很近的方块的同样细节进行绘制,而有些三角形在屏幕上的绘制大小不超过一个像素。 因此,你想使用Lecvel-Of-Detail(LOD)方法让远离相机的方块以低细节绘制,当使用不同的细节层次绘制地形时,你会发现在边界上会出现破裂。 ...
阅读全文
posted @ 2010-10-23 09:56
AlexCheng
阅读(366)
推荐(0)
摘要:
2.10 使用四叉树隐藏不在视野中的部分网格 问题 地形绘制是游戏中的一个重要组成部分。但是,使用教程5-8中的方法,当绘制一个很大的地形时会导致帧数下降。 解决方案 你可以使用一个四叉树简化绘制大地形的工作流程,四叉树类似于八叉树,因为你要将地形分割成更小的方块直到这些方块不大于指定的大小。 这个处理过程如图2-13左图所示。一个16 × 16大小的方块被分割成四个方块,每个小方块再被...
阅读全文
posted @ 2010-10-23 09:42
AlexCheng
阅读(410)
推荐(0)