zoukankan      html  css  js  c++  java
  • 《XNA高级编程:Xbox 360和Windows》51

    第五章编写自己的XNA图像引擎


    5.1本章概览


          在本书的第一部分,您学习了XNA Framework,使用SpriteBatch类渲染2D图像,并且做了几个有趣的小游戏。现在,是时候探索更加令人兴奋的3D图像编程世界了。制作3D游戏比拼装一个2D游戏需要更多的工作量,如果没有3D图像技术的飞速发展,很多游戏都是不可能完成的。有些游戏也可以是2D的,例如即时战略游戏,而且大多数成功的即时战略游戏(例如星际争霸、魔兽争霸、命令与征服、帝国时代等)都证实了2D游戏仍然很受欢迎。但如果您看一下射击类游戏,没有3D图像的支持它们都是不可能实现的,并且通常图像质量越好、越逼真,游戏也就越好玩。其它一些游戏类型,比如横板闯关类(beat-'em-ups、冒险类、体育竞技类等等,也都获益于近几年图像技术的进步。当然,在10年或者20年前,Pong以及早期的Tennis游戏也都很受欢迎,但它们都无法和今天的体育竞技类游戏相提并论。

          XNA是一个很棒的快速创建2D游戏的框架,即使您是个人,也完全有可能快速鼓捣出一个游戏构思,自己做几张图片或者找人帮您做图片,然后用不了几个星期或者几个月就可以编写出整个游戏。

          但是,大多数游戏开发者都更加热衷于制作3D游戏。而且,几乎每个人都常犯一个错误,那就是拿他们自己的游戏创意和那些大的游戏工作室花费好几年才完成的拥有AAA头衔的最成功的游戏作品相比较。如果您是个人,您根本不肯能和EA出的游戏相竞争,即使您认为他们的游戏还不够好,因为他们拥有超过100人的经验丰富的游戏工作室来开发游戏。

          但这都无关紧要,我们大多数人进入游戏开发领域只因为我们喜欢,有时还因为我们相信我们能比其他人做得更好。好的一方面是,虽然制作一个成熟的可以和AAA级游戏相竞争的3D游戏很困难,但您必须要从某个地方开始,随着我们的不断讲解,步入3D编程世界会变得越来越容易。有很多大型网站、学习指南、开发框架和书籍可以快速帮助那些即使是没有什么开发经验的编程人员进入制作3D游戏图像的大门。

          既然有了这么多的学习资源,我不会把重点放在讲解诸如数学基础、如何使用矩阵或者其它有关3D图像的基础知识等方面。因为对于很多已经了解这些知识的编程人员来说,介绍这些东西会很无聊,而且这也会占用更多的篇幅。就如我在第一章中告诉您的,如果您对C#编程没什么经验,那么您应该先从阅读介绍C#的书籍开始。如果您真的很想了解有关3D图像的基础知识,那么就找本书看看吧。如果您之前有使用Direct3D或者OpenGL方面的经验,那您应当已经了解这些基础了(希望大多数读者都是这样),就可以开始学习本章的内容了。

          本章仍使用了典型的学习路线,即先写需求,并针对这些需求创建单元测试,然后再深入到每一个需要的新的类的细节中。正如本章标题所说,您的目标是创建自己的图像引擎,并为本书剩余的项目和游戏准备好基础框架。上一章的Tetris游戏已经使用了很多有用的辅助类,有些新的图像类要在本章进行重构,另外还会添加几个新的类。重构的意思是,有些类需要重写以满足新的需求。
  • 相关阅读:
    Mysql5.7中子查询时order by与group by合用无效的解决办法
    vue $ref的基本用法
    vue渲染列表时报错Avoid using nonprimitive value as key, use string/number value instead.
    uniapp的微信小程序错误警告(uview项目)Some selectors are not allowed in component wxss, including tag name selectors, ID selectors, and attribute selectors。
    如何在 Linux 中找出最近或今天被修改的文件
    微信小程序uniapp编译后vendor.js文件过大
    随笔目录
    cesium加载百度地图_四大Webgis地图框架的对比选择[转]
    Python import Statement
    WordPress中安装插件需要ftp怎么办?
  • 原文地址:https://www.cnblogs.com/AlexCheng/p/2120319.html
Copyright © 2011-2022 走看看