为期八周的游戏编程课程今天完成了所有8个编程作业,一个Project,以及期末考试。证书要过一段时间发下来。

教授这门课的是Dr.T ,他曾经从事游戏开发5年并执教多年。

为什么使用XNA开发?

XNA是微软的跨平台游戏开发平台,支持PC和XBOX的同时开发。

在Linux平台上有Monogame作为其开源实现。并且,MonoGame 支持 “iOS, Android, Windows (both OpenGL and DirectX), Mac OS X, Linux, Windows 8 Store, Windows Phone 8, PlayStation Mobile, and the OUYA console”多种平台

微软已经决定不再对XNA提供支持了,但这门课仍然选用了XNA。T认为所有游戏开发平台其基本的思路都是不变的。对于这一点,我十分赞成。在另一门课Interactive Python中,方法也是一样的。比如一样的update、draw方法,canvas概念等等。

C#

课程以游戏编程为主,选择C#据Dr.T说是因为其简单。由于之前对OOP已经很熟悉了,这门新的编程语言并没有带来多大困扰。

关于C#,唯一感到惊奇的是class里面除了field与method之外还有一种叫做property的用法:

class TimePeriod
{private double seconds;public double Hours{get { return seconds / 3600; }set { seconds = value * 3600; }}
}

Property使用set和get访问器实现的,这样更灵活,也更安全。

另外,C#和C++一样,类中都需要析构函数,但在课程中没有看到这一点。C#也有List等等模板。

说说XNA

XNA框架下需要一个继承Microsoft.Xna.Framework.Game的类,初始化后调用run方法即可。
在这个类中,首先定义全局变量,如Texture2D类型的图片、Soundtrack类型的声音,之后在构造方法中初始化GraphicsDeviceManager和窗口大小、鼠标是否可见等等。XACT作为跨平台音乐创作工具很方便。
之后,LoadContent方法内部要初始化这些音视频资源以及调用的类。
在Update方法中完成位置、速度等的更新,GameTime可以得到上一帧到这一帧的时间。Draw方法中要显示场景。python课程中是限定每秒60帧,但这个使用GameTime控制,更加灵活。

编程作业

作业相对来说还是比较简单的。前几次是基本的人机交互,最后两次有使用渲染的图片在素材图片中截取方框的移动实现了动画,这一点上来说和python课程的深度是一样的。
VS对于XNA游戏有很方便的打包发布功能,最后的大作业我打包成了一个ISO光盘镜像:GuessNumGame.iso。解压或者加载到虚拟光驱之后可以安装。
不过很奇怪VS没有实现相应的卸载功能,要到控制面板中才能卸载。
下载链接在这里,可以稍微玩一玩。

科罗拉多大学 C#游戏编程课程总结相关推荐

  1. 计算机编程课程顺序_您可以在6月开始参加630项免费的在线编程和计算机科学课程...

    计算机编程课程顺序 Six years ago, universities like MIT and Stanford first opened up free online courses to t ...

  2. 计算机编程课程顺序_九月份可以开始提供650多种免费的在线编程和计算机科学课程

    计算机编程课程顺序 Seven years ago, universities like MIT and Stanford first opened up free online courses to ...

  3. 计算机编程课程顺序_620多个免费的在线编程和计算机科学课程,您可以在三月开始

    计算机编程课程顺序 Six years ago, universities like MIT and Stanford first opened up free online courses to t ...

  4. 计算机编程课程顺序_您可以在5月开始学习530项免费的在线编程和计算机科学课程

    计算机编程课程顺序 Six years ago, universities like MIT and Stanford first opened up free online courses to t ...

  5. 计算机编程课程顺序_您可以在八月开始学习450项免费的在线编程和计算机科学课程...

    计算机编程课程顺序 Five years ago, universities like MIT and Stanford first opened up free online courses to ...

  6. 计算机网络设计一个网络游戏,计算机网络编程课程设计-- 猜数游戏.doc

    软 件 学 院 课程设计报告书 课程名称 计算机网络编程课程设计 设计题目 猜数游戏 专业班级 学 号 姓 名 指导教师 2011 年 12 月 目录 1 设计时间1 2 设计目的1 3 设计任务1 ...

  7. 拼插机器人课和围棋课_创想童年机器人编程课程,让孩子享受学习和游戏的快乐...

    人工智能不是互联网的产品,而将是一个时代. 如果说人工智能学科是一棵树,那么我们现在所发展的互联网.计算机编程等技术只算是刚刚为它培好了土.将来,从算法程序到机器人的"大脑"构建, ...

  8. 计算机编程课程顺序_430道免费的在线编程和计算机科学课程,您可以在11月开始...

    计算机编程课程顺序 Six years ago, universities like MIT and Stanford first opened up free online courses to t ...

  9. 计算机编程课程顺序_您可以在2月开始免费在线编程和计算机科学课程

    计算机编程课程顺序 Seven years ago, universities like MIT and Stanford first opened up free online courses to ...

最新文章

  1. 洛谷P2763 试题库问题
  2. Python正则表达式集锦
  3. datatables 无法 无法重新初始化datatable_伽巫塔罗:2020年9月运势占卜,摩羯没了热情,无法重新卡死...
  4. mysql workbench 6.2_如何在MySQL Workbench 6.2查询中运行.sql文件?
  5. Android新闻案例clientserver达到,完全自己的新闻节目平台
  6. RocketMQ的各种集群模式的搭建和消息可靠性保证和服务可用性描述
  7. 极赋设计感的几何字体素材
  8. IOS开发中的几种设计模式介绍
  9. 十天学会单片机和c语言编程 ppt,十天学会单片机和C语言编程笔记1
  10. 软件生命周期是指什么?
  11. MEM-英语 : 单词速记整理
  12. 【笔记总结】高中生物——【选一 Ⅱ】第二章 微生物的培养与应用
  13. linux-命令简写——归原
  14. Android Botton 事件
  15. php Guzzle源码,PHP Guzzle获取请求
  16. gii无法访问 yii2_yii2 学习历程——gii配置外部用户访问权限问题
  17. 软件开发模型之迭代模型
  18. 单片机毕业设计 stm32智能路灯设计与实现
  19. 环境变量之java环境变量
  20. 百度API全国城市地区天气查询HTML源码

热门文章

  1. python编程软件免费吗_MRT7-Python编程软件
  2. Apache Spark Jobs 性能调优(一)
  3. HTML5编写船上航行,单体半滑行穿浪船船型与静水航行性能
  4. python如何让图片镜像翻转_如何用 Python 增量备份 Roam Research 笔记图片?
  5. i7 网站服务器,i7服务器地址
  6. python画图显示中文乱码_解决Python pandas plot输出图形中显示中文乱码问题
  7. python get请求 url传参_requests的get请求url参数、url重定向处理及cookies
  8. 用matlab设计滤波器实验报告,数字信号出来实验报告--matlab滤波器设计
  9. linux桌面隐藏鼠标,如何隐藏鼠标光标
  10. a1在c语言里代指什么意思,A1考试宝典