欢迎来到天天文库
浏览记录
ID:52238261
大小:784.10 KB
页数:4页
时间:2020-03-25
《游戏开发案例在数据结构教学中的应用实践.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、技术应用ComputerEducation文章编号:1672-5913(2009)06-0132-04游戏开发案例在数据结构教学中的应用实践管士亮(临沂师范学院信息学院,山东临沂276005)摘要:“数据结构”课程是计算机专业最重要的专业基础课,游戏开发技术是计算机应用技术最前沿的分支之一,实现由基础到前沿的跨越,是学生的希望所在,也是检验教学成功与否的重要指标。本文总结了游戏开发过程中的成功经验,及时反馈并自觉落实到教学过程中,对教师和学生都是有益的尝试。关键词:数据结构;游戏开发;跨越中图分类号:G642文献标识码:B从事“数据结构”教学的教师往往遇到的学生困惑是:Access为
2、0时,表示此图块不可通过,为1表示能通过。数据结构有什么用?数据结构与计算机新技术的开发有(2)定义二维数组存放每个图块的值什么关系?类似的问题一方面反映了学生对计算机新技定义的二维数组为:PlotMap[7][10]。通过循环将此术的渴望与困惑;另一方面也反映了“象牙塔”里的学校地图初始化,初始化程序和生成地图如图1所示。教育与技术开发市场之间的距离。for(i=0;i<=6;i++)毋庸置疑的是,“数据结构”是计算机本科学生最重for(j=0;j<=9;j++)要的专业基础课,在游戏编程中扮演着极其重要的角色,而游戏开发技术又是计算机应用技术最前沿的分支之一。scanf(“输入第
3、%行,第%列初始化值:%d”&i,&j,&Map本文试图通过数据结构在游戏开发中的简单应用来解答[i][j]);学生的困惑,以此拉近学校教育与市场开发之间的距离。行本文涉及到数据结构中的链表、顺序表、栈、队列、二叉0123456789列树及图的概念,在此不做过多描述,希望读者阅读本文前01111111111对数据结构有所了解,并且熟悉C/C++语言的各种功能和11001100101应用。21001100101311111111111顺序表的应用4100110010151001100101顺序表是数据结构中最简单、最常用的一种线性表,61111111111它的特点是,用一组地址连续的存
4、储单元依次存储线性表的元素。砖块地图系统中使用的就是这种最简单的数据结图1二维数组生成地图构。这里对砖块地图系统做如下规定:构建一个简单的砖从图1看出,这个地图用顺序表表示非常直接。当控块地图系统,视角为俯视90度,并由许多个顺序连接的制人物在其中走动时,对人物将要走到的下一个图块进行图块拼成。判断,看其是否能通过。比如,当人物要走到(2,5)这个(1)定义图块图块时,用如下判定函数来判断这个图块是否能通过:structPlot//定义图块结构x=3;y=5;{intIspass(x,y)intAccess;//记录此图块是否可以通过{……//中有每个图块的图片指针returnMap
5、[x,y].Access;//返回图块是否等记录通过的值};}作者简介:管士亮(1969.10-),男,汉族,山东临沂人,讲师。华中科技大学高等教育学硕士,从事教育管理、实验教学管理研究。133ComputerEducation技术应用以上只是简单的地图例子,使用顺序表也可以表示更{为复杂的砖块地图。目前流行的整幅地图中也都要用到大structBullet*St_New,*St_Temp;量的顺序表,只不过在整幅中进行分块而已。//定义临时链表St_New=_StrucHead;//链表头(已初始化)2链表应用St_New->(BulletSt_MyBullet*)malloc链表的
6、主要优点就是可以方便地进行插入、删除操(sizeof(St_MyBullet));作。在游戏开发中,链表主要应用在有大规模的删除和添//分配内存加操作上。在飞机游戏中,飞机的子弹是要频繁地出现、St_Temp==_NewBullet;//临时存值消除的,个数也是随机的。链表主要应用在发弹模块上。St_New->next=St_Temp->next;在下面的源代码中,我们就定义了坐标结构和子弹链表。St_Temp->next=St_New;(1)定义坐标结构};(5)在函数VoidRefreshBullet()中,只要将链表遍历一structCpiot//定义坐标结构次,就可以实现子弹
7、的数据更新。主要的源代码如下:{intx;//X轴坐标while(St_MyBullet->next!=NULL)inty;//Y轴坐标{//查找};St_MyBullet->bulletpos.x=bulletspd;(2)定义子弹链表//更新子弹数据………structBullet//定义子弹链表St_MyBullet=St_MyBullet->next;{//查找运算Cpiotbulletpos;//子弹的坐标};intbulletspd;//子弹的速
此文档下载收益归作者所有