赞助广告

 

年份

最新评论

评论 RSS

处理2D图像和纹理——创建一张纹理,定义每个像素的颜色,将纹理保存到一个文件

clock 十一月 26, 2010 10:53 by author alex
问题 你想创建一张新纹理并手动定义每个像素的颜色。当你想让用户创建一个新图像或生成诸如深度贴图之类的人工图像时是很有用的。 你想将这张纹理存储到文件中,例如,生成游戏截图或为了调试的目的。 解决方案 设置一张图像的颜色和将纹理用你选择的格式保存到一个文件中被XNA Framework直接支持。 你可以通过调用纹理的SetData方法改变它的内容,这个方法以一个包含每个像素颜色值的数组为参数。 你可以使用纹理的Save方法将它保存到一个文件中。 工作原理 首先创建一个数组,保存图像中每个像素的颜色: int textureWidth = 512; int texture... [更多...]

处理2D图像和纹理——创建2D菜单界面

clock 十一月 26, 2010 10:51 by author alex
问题 你想创建一个2D菜单界面,让你可以容易地添加新的菜单和指定它们的菜单选项。这个菜单允许用户使用控制器/键盘切换不同的选项和菜单,当用户从一个菜单切换到另一个菜单时还可以定义漂亮的过渡效果。 解决方案 你将创建一个新的类,MenuWindow,这个类保存所有与菜单相关的东西,诸如菜单的当前状态,菜单项,背景图像等。这个类让主程序可以容易地创建多个MenuWindow实例并将菜单项添加到这些实例中。菜单项可以使用你的系统中安装的字体用2D文字的方式显示。 要实现过渡效果,一个窗口将拥有Starting、Ending、Active和Inactive状态。controller/keybo... [更多...]

处理2D图像和纹理——显示文字

clock 十一月 23, 2010 16:56 by author alex
  问题 你想绘制一些文字,例如,显示一些操作说明或当前得分。 解决方案 本章前四个教程中学习的SpriteBatch类也可以绘制文字。做法和绘制纹理几乎是一样的,只不过不是导入一个Texture2D,这次导入的是一个SpriteFont,它包含了你想使用的文字大小和类型。然后就可以使用SpriteBatch . DrawString方法绘制文字了。 工作原理 首先需要创建一个SpriteFont文件。右击XNA项目的Content文件夹并选择Add→New item。从对话框中选择SpriteFont,起一个名称(比如ourFont),然后点击Add。 现在... [更多...]

处理2D图像和纹理

clock 十一月 23, 2010 16:14 by author alex
问题 当使用SpriteBatch类不当,绘制大量图像时程序会变得很慢。 解决方案 教程3-1已经提到,每帧创建一个新的SpriteBatch类,或绘制每张图像时开启和关闭SpriteBatch类会极大地影响性能。但是还有更多微妙的东西需要考虑到。 工作原理 性能优化:Sprite Sorting Modes SpriteBatch类的Begin方法让你可以设置SpriteSortMode。在讨论到不同模式前,你需要知道显卡喜欢的工作方式是什么,不喜欢的是什么。 在屏幕上绘制一张2D图像是通过绘制两个三角形并将它们填充为从一张纹理采样的颜色实现的。显卡喜欢一次性地绘制大量的三角形... [更多...]

解决:asp在windows 7 64位下500错误

clock 十一月 21, 2010 20:57 by author alex
asp应用程序在64位系统下需要设置应用程序池才能正常使用: 解决办法: 1.点击asp应用程序对应的应用程序池,在IIS右边点击“高级设置”如图 2.“启用32位应用程序” 设置为True 如图 点击确定。问题解决!

解决网页不能显示PNG的问题

clock 十一月 17, 2010 13:37 by author alex
Windows Registry Editor Version 5.00 ;PNG file association fix for Windows XP ;Created on May 17, 2007 by Ramesh Srinivasan [HKEY_CLASSES_ROOT\.PNG] "PerceivedType"="image" @="pngfile" "Content Type"="image/png" [HKEY_CLASSES_ROOT\.PNG\... [更多...]

处理2D图像和纹理——使用层绘制透明图像

clock 十一月 16, 2010 15:09 by author alex
问题 在大多数情况中,你想在多个图像的上面绘制另一张图像。主要问题是,如果所有的图像都是完全覆盖屏幕的,那么它们就会覆盖前面的一张图像。你还要确保首先绘制背景图像。 解决方案 使用XNA,你可以指定层(layer),或者说图像的绘制深度。位于最大深度的图像会被首先绘制。 大多数图像格式支持透明。这意味着除了包含红、绿、蓝的颜色信息,它还包含alpha信息。当开启透明时,图像的透明区域会显示图像下面的东西。 在Xna中,你还可以指定一个颜色变为透明。这对那些没有包含透明信息的图像是很有用的。 工作原理 简单的透明 SpriteBatch类对象可以处理包含透明信息的图像。这在大多数... [更多...]

处理2D图像和纹理——旋转,缩放和镜像一张图像

clock 十一月 16, 2010 14:41 by author alex
问题 在将图像绘制到屏幕前你想对它进行旋转,缩放或镜像操作。 解决方案 SpriteBatch 类(见前一个教程)的Draw方法的不同重载可以让你很简单地进行上述操作。 工作原理 旋转/缩放/镜像一个图像 SpriteBatch.Draw方法有几个有用的重载。下面是最复杂的一个重载方法,参数会在后面加以讨论: public void Draw (Texture2D texture,Vector2 position,Nullable<Rectangle> sourceRectangle,Color color,float rotation,Vec... [更多...]

处理2D图像和纹理——使用SpriteBatch类显示2D图像:加载和绘制图像

clock 十一月 16, 2010 11:25 by author alex
问题 你想将一张2D图像绘制到屏幕中以创建一个2D游戏或作为3D游戏的用户界面。你想有一个简单界面可以指定图像显示在屏幕上的位置。 解决方案 XNA Framework已经以SpriteBatch类的形式提供了这个功能,它可以以一个有效率的方式绘制图像。 虽然SpriteBatch的设计以易用性为优先考虑,但它也允许你可以选择一些优化性能的方法,你会在这个教程中看到详细介绍。 注意:因为每个图像是矩形的,所以可以用两个三角形绘制,用一张2D图像作为纹理覆盖其上。SpriteBatch类会自动帮你进行这个操作。因为你实际上绘制的是三角形,使用SpriteBatch类让你可以充分利用硬件... [更多...]

友情链接赞助