游戏案例在中职C#课程中的设计和开发

来源 :考试周刊 | 被引量 : 0次 | 上传用户:sfbw
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文把游戏案例引进中职C#课程的教学中,通过知识点的层层推进引导学生完成任务,游戏本身也给学生带来了愉悦和成就感,实践证明这样的做法对学生掌握计算机语言和提高学习兴趣有着积极的作用。
  关键词:C#课程;中职;游戏案例
  一、 引言
  目前各级各类学校在计算机专业中往往都开设C#课程,但这些课程的教学过程却有着一定不足之处尤其是中职学校,游戏是学生的爱好,也是人类的天性,游戏中能让人的心理得到“补偿”从而体会到现实生活得不到的快乐,目前很多学者在进行C#课程改革时试图引入游戏内容以提高学生兴趣。本文则通过一个基于C#语言的飞机游戏案例设计让学生们逐步掌握C#的各个知识点,直观的感受到游戏带来的快乐从而更好的达到教学效果。
  二、 游戏选题
  众所周知游戏之所以吸引人主要是因为它的激励机制,所以在选择游戏时必须考虑到这一点,同时鉴于学生的学习能力选取如坦克大战、贪吃蛇、连连看、飞机等一些小程序作为课程的主要内容,然而正所谓“麻雀虽小五脏俱全”,它涵盖了大部分C#知识点。下面我们就以飞机游戏为例谈一下如何设计教学案例。
  三、 游戏设计
  针对飞机游戏笔者在vs2012中设计了gameui.cs(界面类)、background.cs(背景类)、plane.cs(飞机类)、planelifes.cs(飞机生命类),planeboom.cs(飞机爆炸类),bullet.cs(子弹类)、enemy.cs(敌人类),enemybullet.cs(敌人子弹类),boss.cs,bossbullet.cs(boss子弹类),bosslife.cs(boss生命值类)等。按照学生接受知识的前后顺序安排以下四个教学进阶:
  进阶一:完成飞机背景的显示与移动
  首先设计背景类background.cs,背景类包含移动、显示、播放音乐等方法。其次在界面类中添加背景对象及显示方法。值得一提的是通过查阅资料笔者在初始化游戏界面时添加一段双缓存代码:public GameUI(){SetStyle(ControlStyles.
  UserPaint,true);SetStyle(ControlStyles.AllPaintingInWmPaint,true);SetStyle(ControlStyles.DoubleBuffer,true);InitializeComponent();…这样可以消除飞机游戏背景移动出现的“卡顿”现象,这个进阶中涉及到基础类的创建、类对象的实例化和调用还有双缓存消除界面卡顿等知识。
  进阶二:利用键盘控制飞机的移动
  首先,设计飞机类plane.cs和背景类类似需要定义位置、大小等变量、创建显示、移动等方法,这里值得强调的是飞机类在初始化时需要添加与游戏界面GameUI 的KeyDown事件的关联GameUI.gameform.KeyDown =newSystem.Windows.Forms.KeyEventHandler(plane_move)其次设置在界面类中添加飞机对象如:public partial class GameUI:Form{public static planepl;…..public GameUI(){pl=new plane();}private void GameUI_Paint(object sender,PaintEventArgs e){pl.draw(g);}….
  进阶三:完成飞机子弹对象的加载和移动
  首先设计飞机子弹类bullet.cs,它的成员变量、方法和飞机类相同,只是子弹类的位置x,y变量是根据飞机的坐标确定的所以把x,y设置成公共属性如下:public class bullet{……..public int X{get {return x;}set {x=value;}}public int Y{get {return y;}set {y=value;}}而子弹移动方法为:public void bullet_move(){y=y-speed;if(y<0)GameUI.bl.Remove(this);}子弹向上飞如果越界就清除掉。其次游戏中子弹对象有很多个,需要用到泛型类的知识点如public static List bl;再次,完成子弹的产生与飞机的移动分不开于是在飞机类中编写。
  进阶四:完成飞机被击中、飞机生命值的设置
  首先为飛机类添加如下代码,值得注意的是判断是否被击中在比较中心点时可根据实际图片的尺寸进行调整,在判断击中时也需使用变量记录敌机子弹的编号以免发生飞机被同一子弹(敌机)连续击中的情况。其次我们设置飞机的生命值类代码:
  if(planelifenum==0)…”you loss!”…
  else{planelifesimage(Image)Resource1.ResourceManager.GetObject(“plane” planelifenum.ToString());g.DrawImage(…)
  在这个进阶中判断是否击中是核心,由于文章篇幅这里略去,值得注意的是程序中添加了Resource类对象Resource1用于存放资源。
  四、 学习反馈与小结
  经过一个学期游戏案例的教学实践,学生对课程的掌握程度和满意度有了一定提高如下表对15、16两个年级按不同教学方式教授C#程序课学生满意度对比,学生普遍反映以游戏作为教学案例有助于他们摆脱对于传统的程序课的偏见更容易接受和消化知识,同时分进阶的方式也可使得不同的学生都能学有所得。
  本校15级、16级学生学习满意度对比
  参考文献:
  [1]刘冉.如何提高五年制高职计算机教学水平[J].考试周刊,2013.82.
  [2]布莱克曼著,郭道寰翻译.心灵面具[M].华东师范大学出版社2011
  [3]蓝敏.游戏项目驱动的高职院校“C#程序设计”教学改革研究[J].高教学刊,2015年17期.
其他文献
本刊讯2011年8月22日,《健康北京“十二五”发展建设规划》新闻通气会在北京市中环广场市政府办公楼新闻发布厅召开。预计到2015年,健康北京建设将实现居民健康水平进入世界
090 稀土合金相图及相关系的研究,郑建宣,庄应烘,陈荣贞,刘敬旗,李德萱,物理;1989,18(8),477。 091 某些三价稀土离子与二酰异羟肟酸固态配合物的合成及性质,刘光华,化学通
1685年,约翰·塞巴斯蒂安·巴赫出生于艾森纳赫的一个音乐世家,其父亲是当地宫廷乐队的成员。巴赫十岁时父母双亡,只身来到奥德鲁夫,投奔在圣米歇埃利斯教堂任管风琴手的哥哥
造成河南省县乡财政困难的重要原因之一是财政供养人员过多。据统计,2004年底全省乡镇机关事业单位编制16.2万人,可实际人数达到30.2万人,超编14万人,超编比例86.5%。大部分
设计了一个用单片微机8031对 CA6140型车床进行改装的简易数控加工系统。介绍了系统各模块的主要功能和硬件设计方法,并详述了微机与步进电机的接口电路、数控加工软件的程序
为分析桥梁工程的修建对原河道水文情势的影响,以小龙门大桥工程为例,采用平面二维数学模型,模拟了5 a一遇设计洪水条件下工程修建前后河道内水位和流场分布特征的变化。结果
摘 要:本文应用运动生物力学研究手段和基本理论对国家优秀职业拉丁舞运动员的牛仔舞Side Chassés动作进行测试分析,旨在揭示其运动特点和规律,为诊断与分析运动员的技术动作提供理论依据。  关键词:拉丁舞 足底压力 分析  中图分类号:G64 文献标识码:A 文章编号:1673-9795(2012)11(b)-0210-01随着拉丁舞的快速发展,拉丁舞的技巧套路在不断完善、动作在不断创新、难度
《民国人物碑传集》后记卞孝萱几十年来,我搜访聚集近现代名人碑(含墓碑、墓表、墓志等)传(含启、行状、家传、事略等)的经过,章开沅教授为《辛亥人物碑传集》所撰写的“序言”中,述
“民富则安,民困则乱”,这是历史留下的经验之谈。就业和再就业工作,关系亿万人民群众的切身利益,关系改革发展稳定的大局,关系全面建设小康社会宏伟目标的实现。1994年税制
随着计算机技术的蓬勃发展,信息化管理被广泛运用于医院的各个方面,而会计核算一体化在推动会计工作更好地为医院管理服务方面发挥了重要的作用。 With the vigorous develo