




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、从头开始您已经准备好了一切,现在就让我们开始编码吧!本节您将在XNA Studio模板的帮助下创建一个简单的游戏项目,然后在Update和Draw方法中添加少量代码以实现一些小功能。在下一小节学习了SpriteBatch类之后,您将创建您的第一个游戏。Ø 您的第一个项目 打开XNA Game Studio Express,在菜单栏中选择“文件新建项目”,在弹出的新窗口中选择“Windows Game”模板,然后在项目名称处输入新项目的名称,比如“HelloWorld”或者就使用默认的名称“WindowsGame1”,在位置处输入新项目的保存位置,最后点击“确定”按钮。另外,在该窗口中
2、还可以创建基于初学者工具包的游戏项目,比如“Spacewar Windows Starter Kit”。如下图1-10所示:图1-10 在新创建的项目中包含两个类文件:Game1.cs和Program.cs。其中Program.cs文件包含了该应用程序的入口点Main方法,如下所示:Game1.cs文件包含了类Game1(继承自类Microsoft.Xna.Framework.Game),它包含了之前讲过的三个方法:Initialize、Update和Draw。(小窍门:如果要观看整个程序的结构,可按Ctrl+M,O来折叠代码)Initialize方法此时不执行任何操作,只是调用基类的Init
3、ialize方法进行基本的初始化操作。Update方法主要包含下面的几行代码,用来检查Gamepad上的“Back”按钮是否被按下,如果按下则退出游戏,否则调用基类的Update方法:Draw方法主要执行一个操作,将游戏窗口的背景色设置成一个特定的颜色,如下所示:Ø 按F5运行现在按下键盘上的F5键,或者选择菜单栏上的“调试启动调试”命令运行游戏,此时将弹出如图1-11-(1)所示的窗口,它的了蓝色背景就是在Draw方法中设置的。图1-11 您也可以把背景色改为绿色,比如Color.Green,然后再按F5运行程序,代码如下:参数ClearOptions的默认值是ClearOptio
4、ns.Target | ClearOptions.DepthBuffer,意思是背景色和Depth缓存都被清除。Ø 修改代码现在,您可以想一想如何修改您的代码来实现一些操作。比如,按下键盘上的Escape键可以退出游戏。之前说过,XNA默认的会在Update方法中检查Xbox 360控制器上的Back按钮是否被按下来决定是否退出游戏,代码如下:在以后中您将学习到Input类的使用,不过现在您可以使用一种快速的方法来操作键盘,下面的代码演示了当您按下Escape键时也能退出程序:Ø 加入图像现在来初步学习在游戏中加载图像:给游戏加上一个背景图,然后操作键盘或者GamePad来
5、移动该背景图,这些在很多2D的角色扮演游戏中经常会用到。在您的第一个项目中添加的texture是CityGroundSmall.png,如图1-12所示: 图1-12 要把这个texture(CityGroundSmall.png)加入到您的项目中,只需要在解决方案资源管理器(Solution Explorer)中把这个图片拖拽到您的项目的Content目录中即可,然后右键点击该文件查看“属性”,如图1-13所示:图1-13 通常你会用到 “生成操作(Build Action)”和“复制到输出目录”这两个的选项(比如,您可能想把一个.dll或者.xml文件包含进来)。资源名称(Asset Na
6、me)在将来选择加载资源时使用,而且内容文件的资源名称必须是唯一的,不能有重复。现在如果按下F5或者F6(生成解决方案)上述添加的texture将被处理,并在项目的输出文件夹中产生一个新的文件“CityGroundSmall.xnb”,而且在项目的输出窗口中会显示下面的信息: 现在您要做的最后一件事就是加载已经导入的纹理文件,在Initialize方法中进行操作并且在类中添加一个变量backgroundTexture,并使用之前您指定的资源名称(Asset Name)(资源名称默认的是您添加的内容文件的名称)。要渲染您的texture到输出屏幕上,您需要下一章要讨论的SpriteBatch类,
7、它先设置Alpha Blending,然后把texture画到sprite中,最后把所有东西都画到屏幕上,代码如下:在类中定义以下变量(不是在函数中,也不是在类外!)然后找到Initialize函数,改成这样:要显示内容,则必须在Draw方法中启动SpriteBatch,并把texture渲染到sprites中,如:上述代码将在输出屏幕的(0,0)坐标处显示该背景,SpriteBatch.Draw方法中的Color参数也可以重新设置,不过这里暂时并不重要。按下F5将看到图1-14所示的结果: 图1-14 Ø 加入控制最后一件事就是添加使用键盘或者GamePad来滚动背景的功能,这样您
8、就可以把可滚动的Tile渲染到整个背景。像下面这样修改Update方法您将可以捕获键盘或者GamePad输入:在类中添加一个float类型的变量scrollPosition,并赋初始值为0,如下:将Update函数中的内容改成如下:前面几行代码和之前的例子是相同的。接下来要计算每一帧要移动多少像素,如果一秒钟只画一帧,那么变量moveFactorPerSecond的值就是400;如果一秒钟画60帧,那么一帧需要1/60秒,此时该变量的值就是400/60(其中gameTime.ElapsedRealTime表示相邻两帧之间的时间间隔)。每当用户按下Up或者Down键的时候变量scrollPosition的值都会发生变化,此时再在Draw方法中把scrollPosition的值加到坐标y上,就可以把背景来回上下移动了,代码如下:现在运行您的游戏就可以上下来回移动,这对于您的第一个小应用是不是很酷?第二个任务将上述程序改动一下,使得图片能布满屏幕。(将关键程序截图)第一个任务将上述程序改动一下,使得图片能左右移动。(将关键程序截图)Ø 播放声音现在要添加声音了。设计是:当A键被按下时,播放声音。播放声音时,首先要定义一个SoundEffect变量,然后再调用它的play()方法就可以了。向项目的Content目录添加声音素材fire2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业互联网平台数字签名技术在电子合同领域的应用规范报告
- 诗歌鉴赏课件
- 剧组美术场景培训课件
- 烫伤应急处理培训课件
- 2025年彩漂行业研究报告及未来行业发展趋势预测
- 丰城中学2024届九年级下学期7月期末考试(高中预科)语文试卷(含答案)
- 2025-2030中国电力检修行业投资风险与营销策略创新分析报告
- 2025-2030中国甑炭行业需求动态及发展前景预测报告
- 2025-2030中国环氧树脂延长剂行业需求态势与盈利前景预测报告
- 2025-2030中国混炼胶行业运行状况及投资潜力研究报告
- 2025-2030电动船舶电池系统安全标准构建与产业链配套能力报告
- 数字时代群体冲突演变-洞察及研究
- 2025秋新部编版一年级上册语文教学计划+教学进度表
- 2025年公安辅警招聘知识考试题(附答案)
- (标准)便利店转让合同协议书带烟证
- 廉洁文化知识试题(含答案)
- 2025《地方资产管理公司监督管理暂行办法》解读课件
- 大学英语四级高频词汇1500+六级高频词汇1500
- 二年级劳动与技术折扇课件
- 公墓施工组织设计
- 小升初英语学习方法指导PPT
评论
0/150
提交评论