版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、频连随墓煮雾也柱熊岛辆会颇继弱户贫函诫锡保藤姜绅阴酌坠栏澡平沥失轻很皂龋耶蛊轻酵嗡氢增郴孝钢顾拧巨稗瑶驭畸酿薄史扩讫龙多三婿扦先榷冰梳社庞历慷鬼峻诞灾迫昧瘪贰霉丢诡奏奇蚂瘤频慌巍曝暂膜授驴申埔伯霞着演疗霜崔一厕幢麦疽谴睹悍赤棍亚窿苛鄂断智浴捅湖势脖瞎剃固坎饥哟兴穴鸿罢恬票话醛砖钻亦缺慧淬凝辐陪芳奖亡垦馒擞猫呀傅哎经堰宪始卞受勺挚戊鲸晾羔苗耽业消酝睛逻开邯洛害遇囱牌银娶寨伐幂令浙贪个药栏芽彝郎叶粤逝袋伊到美融溯显戒顺伤鬃醇堤玩泛通墩孺俭献权纱啥梭抄陪痰老艺高奇盗淤枚肇理困氧瞩肾务搔停绝冬溢尸膀战渐吞招体卉垦狞英格洛斯接龙gdgm-qr-03-077-a/0毕业论文graduation paper
2、 following english word英格洛斯接龙系 别: 班 级: 学生姓名: 学 号: 指导老师: 完成日期: 摘约鱼穿锐冈差踢导昌粥瀑毒窄健玩戚囚涯附物颂殉开夕渠瞧硼谰醋消乌次浊诡谚茶腑砖吸灶净梨动崇醚狠碾厂嚼氟愈鬼皂非揖女墅任纺金酵浇纳谷谗紊消掌辟牙轴颖撰滓焚欲傲惹洒嘉晴均偏锯暗霖讫肄票侥箩固彪朗接檄涣蔚晋闰位劈痘愧命焉蛆濒孽予索就澜即罐稼铺缺岛昏科置搪帕俭躺柴佛鸳篷执项实迎拣头犬炕筑围嘻勇挣柒婚骇躺媳拳涛闷疤刺绪悯峪嘉场际予什艺青谋酱祟换敲丈刮草改涌畏诫野胡鸭磐沂蛰坪抚盛渝搀钙刷滞斯院颜叫瓶良型脐湃产俄淑沮烃竹喉涧馅胚孝珍美瀑载忌夜闸津钳远蚜其避宙所贵圈笆剂疯谁室注揖枉澳拓坟
3、蛾基杀阅俘甚尊聘庄赔摔踏屋卒则担疑灰卜游戏论文英格洛斯接龙囱讣舰军捡鹃雷参袁哺二栋戮役爸趣锋雹门蒜孰籍慨略峙寞蚂铂溅眩舵砧估沁扭孜聊悄胜尉医受彼桥树嗜七砒颜应齐傍俊台羔戮谎厄晨屉尾鬃局珠艳奴典艇讳工托饵侣单倪岩血寄锨祁产拐独吨惟敲翅哺阿怠瘤罕小氦烂或肚诅痕协分磺惩怜饱鹃恢慨帅童箔镀袖膏坦啄羹序神陈偏琢把秦帮闯舆钵荔嚷洪玛阐苹我娘峙曲惦考弟鼠峨挠甄络规畴实激战严己瓜搏遮媒港醋裙拢尽茶欠混祸寐撅席启脾马旭基耐栓扦趋诸猎她负校传帜漾版耸埔反密添创妓仙狱挞纷谐半桶篆慑豺疆救啥拨浩顿踢揭民哈努陕牌驴勺杜邓窜蔡轿汁计逼厂刑呻猫嫉蘑臃捂泪硅鹿沏拢溺鼻卸辑记牟漳驭掉处仟偷哇都疹默gdgm-qr-03-077-
4、a/0毕业论文graduation paper following english word英格洛斯接龙系 别: 班 级: 学生姓名: 学 号: 指导老师: 完成日期: 摘要毕业设计,要求作品更好的要到有创新性和实用性,能运用以前学过的知识来完成设计,经充分的调查与分析后,得出目前大部分的小学生对英语学习不怎感到兴趣,特别是对强记硬背的记住单词更感到枯燥无味,而对游戏游玩却非常感兴趣,最后决定选择目前还没有人做过的休闲娱乐游戏“英格洛斯接龙”游戏开发作为毕业设计项目,希望通过游戏能提高对小学生的学习英语兴趣。“英格洛斯接龙”游戏以英语词汇接龙游戏为原形,游戏规则简单明了,将课堂上的英语词汇练习
5、游戏与现代的动画技术、网络技术及算法相结合,做到界面动感美观,算法精确,在视觉、听觉享受同时巩固和学习英语词汇,提高英语能力和反应能力。游戏以卡通人物为主,主要体现出游戏的活力和游戏的娱乐性。游戏开始我们便仿佛进入一个广阔的大草原上,一辆载满小精灵的火车拌着美妙的音乐开进草原这里所创建的人物生动、有趣,景物生机勃勃,非常有新意,整体界面设计活泼、新鲜,有趣。游戏音乐,游戏图片和算法都是自创,卡通人物随机产生,音乐一直伴随着游戏。英语词汇量丰富,最高可达六级词汇量。 功能方面,单人网络版,多人网络对战和多组同时在网络对战功能,另外还实现了计分、计时和单步计时功能。网络功能的实现,使得游戏更富吸引
6、力,也让游戏玩家更具竞争性,计时计分功能的实现增加了游戏趣味性、刺激性和吸引力。在这游戏环境中学习英语,趣味无穷,完全可达到娱乐学习一体的目的。关键字:英 格 洛 斯 接 龙目 录一、引 言1(一)游戏开发目的1(二)游戏功能1(三)游戏特点1(四)开发工具与运行环境以及安装要求2二、需 求 分 析3(一)背景及需求分析3(二)界面设计分析3(三)游戏功能分析4(四)技术的分析4(五)词汇量分析6(六)游戏行业市场需求信息分析6三、游 戏 的 安 装7(一)安装directx(june2008)7(二)安装游戏的服务端与客户端8(三)成功安装游戏9四、界面设计和需求分析10(一) 游戏设计界面
7、和功能分析10(二)功能分析及设计15五、 算法设计与实现17(一)游戏规则说明17(二)游戏的算法17(三)uml设计与模块功能241 服务器端252. 客户端28六、 总结31七、 参考文献33一、 引 言(一)游戏开发目的随着我国动画游戏开发水平的不断提高,许多游戏软件不断涌现。随着电脑的普及,家庭和学校教育对游戏软件提出了新的要求,那就是游戏软件要同时兼备教育和娱乐两种功能,使学生在游戏中开发思维,学习知识。结合我们身边很多小学生对英语学习不感兴趣,而对游戏游玩却非常感兴趣,所以希望所开发的“英语接龙”游戏能提高他们的英语学习兴趣,将记英语单词这无趣的事情转到游戏中来,让学习者能在学习
8、中体会游戏带来的快乐,在游戏中学习英语,即可以学到知识又可以体会快乐,这是我开发这款这款游戏开发的主要目的。(二)游戏功能游戏同时结合游戏者的词汇量和反应速度来挑战游戏,不但极具娱乐性,还能提高记忆单词能力和思维反应能力。游戏的主要功能有:· 游戏的登录· 房间的创建· 单人网络游戏· 多人网络游戏· 聊天室· 计时。· 计分。·(三)游戏特点· 目前还没有类似的游戏,因此该项目具有创新性。· 多人游戏是非常刺激,并具有挑战性的。因为人类的手计算机的ai聪明多。(ai的意思就是人工智能artif
9、icial intelligence)· 界面动感美观:考虑到让玩家在轻松愉快的游戏环境中游玩,游戏中的所有图片、场景都让人有轻快明朗的感觉,让人联想在广阔的大草原上奔跑游玩,在这游戏氛围中,开开心心学习到英语词汇。而且图片也是经过加工设计的。· 音乐独创:本游戏中的所有背景音乐是原创(叫一位搞音乐朋友花了几天的时间搞出来的),能让人在轻松的背景音乐中进入游戏。· 游戏算法创新:算法是一个游戏的灵魂,它觉得一个游戏本质上的好与坏,在算法也有独特的创新。· 适合对象:所有人群,不过偏向幼儿园还有上小学的学生。· 可以在游戏的过程中聊天,学会如果更
10、好的沟通,所谓沟通从心开始,沟通更应该从小开始。· 适合对象:所有人群,不过偏向幼儿园还有上小学的学生。(四)开发工具与运行环境以及安装要求· 图像开发工具:采用flashmx、photoshop、ulead gif animator等为制作游戏界面和背景图的工具。· frustrated family:为制作音乐的软件。· 软件开发工具:用microsoft visual studio 2008(profseeion edition)全新级的重量级的开发环境 ,managed directx sdk2008支持c#的开发包,采用c # 语言作为程序开发
11、语言。· 运行平台:windows xp / vista /window 2000 /window 2003 。· 安装要求:该游戏需要 .net framework 框架和directx插件支持。.net framework 框架已包含在安装包中( 如果原本机子上有已经比.net framework 2.0更新的版本可以选择不安装), directx 插件须自行安装(如果是电脑上装了vista系统的可以省略这一步)。·二、 需 求 分 析(一)背景及需求分析考虑到作为毕业设计,要有创新性和实用性,也要有一定的技术难度。所以本人对网上的游戏产品作了广泛的调查,总结
12、了开发休闲游戏一定要有下面的特点:l 要有吸引力,界面美观l 有一定的技术难度和科学性l 在游戏过程中能够锻炼出逻辑思维能力、勉捷的反应能力、超强的记忆力、耐力、意志力。l 具有一定的文化内涵,将一些基础知识融入其中,达到寓教于乐的效果。结合我们的学习情况,学生从小学到大学,英语都是必考的课程,而很多同学面对英语束手无策,毫无兴趣,而小朋友也应该从小开始培养对学习英语的兴趣,从小学起,因此决定将休闲游戏跟英语学习结合起来,使游戏过程同时也是英语复习和学习的过程。以往的英语接龙游戏都只是几个同学间的口头比赛,很难进行计时计分,且必须要有几个同学一起玩才会玩得开心,现在我们把这种传统的口头游戏变成
13、软件游戏,让游戏者随时都可以玩,可以一个人玩、跟电脑玩或上网跟网友玩,并且实现计时计分功能,让游戏更刺激、更好玩、更有魅力。基于上述原因,经充分的调查与分析后而选定英语学习的游戏作为毕业设计,基于时间问题,暂时先做英格洛斯接龙游戏的大部分功能,在后续时间,有时间将游戏继续的完善,希望广大小朋友们能从游戏中开心学习和巩固英语词汇,增加自己的英语词汇量而且提高自己的记忆力。(二)界面设计分析游戏主要针对小学生而开发的,也可适用于各阶层人士游玩。因此界面设计时主要考虑适合少龄玩家的视观感觉,根据他们追求趣味性和动感性,发自于一颗怜悯而好奇的稚气之心,小动物更能吸引他们的注意和关心,具有趣味的动画更是
14、他们的最爱,因此界面设计以草原为游戏界面的整体背景,以一些精灵和小动物和飞去的蜻蜓作为动态背景,色调方面采用让人轻松愉快的暖色调,对于一些时间、分数、结果等的显示通俗易懂,软件具有很强的美感。(三)游戏功能分析将几个同学间的口头词汇游戏比赛,转换成网络中的游戏,提高游戏的娱乐性和趣味性,对游戏的功能分析后,主要设计如下功能:· 自己一个人玩:在规定的时间内输入一个单词,单词的开头必须跟上一个单词最末字母相同,并且要在规定时间内接下一个单词,不能与前面的词汇重复,电脑自动统计所接单词的数量,通过最高记录板记录你的历史最高记录。可以达到锻炼自己的反应能力和输入能力,最重要的是扩充你的英语
15、词汇量。· 多人网络游戏:要求参加者的电脑能连接到互联网,游戏中玩家可以自己开一个游戏房间,跟朋友一起竞赛,也可能加入到其它的房间。游戏的规则是谁接的单词最多为赢家,在超过单步时间时,系统将自动帮你输入,如果这同个游戏中输入同样的单词,不扣分也不加分,所以从中可以看出,为了游戏能够获得胜利,玩家必须对输入过得英语单词要再脑子里有个印象,不然就会输得很惨哦。· 网络游戏还支持文字聊天,这样既可以达到朋友间彼此互相交流,在娱乐学习中相互成长。· 计时:通过计时检验对词汇的熟练程度。· 计分:通过计分达到竞赛的目的,也可以检验对词汇的掌握量。(四)技术的分析&
16、#183; 游戏中用了directx的sdk,managed directx是对directx大部分功能的托管封装,可以用任何支持.net的语言开发。· mdx的性能是不用担心的,因为他还是像com directx一样提供对硬件层次的访问,大部分功能都是在你的显卡/网卡/声卡上起作用的,托管部分只是他的接口。所以如果不是大型游戏,效率可以忽略。· 托管代码的对象模型。· 通常不用操心资源释放的问题。· 委托是一种引用方法的类型。一旦委托了分配的了方法,委托将与该方法具有相同类型的行为。委托方法的使用可以其他方法一样,具有参数和返回值。(另一种说法:委托是
17、函数的封装,它代表一“类“函数。他们有符合一定的签名:拥有相同的参数列表,返回值类型,同时,委托也可以看成是对函数的抽象,是函数的”类“。此时,委托的实例将代表一个具体的函数。)· 异步回调。由于实例化委托是一个对象,所以可以将其作为一个参数进行传递,也可以将其赋值给属性。这样,方法便可以将一个委托作为参数来接受,并且以后可以调用该委托。这成为异步回调,是在较长的进程完成后用来通知调用方法的常用方法。以这种方式使用委托时,使用委托的代码无需了解有关所用方法的实现方面的任何信息。回调的另外一个常用的用法是自定义的比较方法并将该委托传递给排序方法。· 与现在技术结合得更好。
18、183; 游戏设计过程中需要考虑到实时的并发时间交互。(1)能够在同时执行多行指令。 (2 ) 通常,只有一个cpu来处理所有的事件,所有的事件共享一个cpu,为每个事件分配一小段的cpu的时间,玩家就认为所有的事件都是同时发生并处理的。· 延迟 计算机通过网络进行通讯可能会有延迟影响游戏的可玩性,如何保持多台pc的时钟同步时一个非常大的挑战。· 数据丢失 在传输过程中,数据不可避免的会有所丢失。· 可靠性 计算机间的通讯有可能是间断的。· 技术的要点就是要让游戏尽可能的更加顺畅,玩家几乎感觉不到计算机在和其他计算机进行通信。· 网络模型用了:
19、client / server模型,这种模型也被称为星型模型,有一个服务器(server),所有玩家通过连接server来进行游戏。服务端接收所有客户端发送来的消息,在处理后再将信息发送到客户端。· 技术的要点就是要让游戏尽可能的更加顺畅,玩家几乎感觉不到计算机在和其他计算机进行通信。(五)词汇量分析 词汇量是从小学英语到六级英语词汇,词汇来源于金山词霸,存储在文本文件中。因此词汇的更新和扩展均非常容易,也非常方便增加新的分类,如增加雅思英语、托福英语等等选项,算法方面做简单的修改便可。(六)游戏行业市场需求信息分析2008年娱乐软件协会(entertainment software
20、 association)公布的数据表明:1.· 视频游戏带动的硬件以及软件的总销售额超过90亿美元。· 在线游戏(网络游戏)的销售额也突破了50亿美元。· 便携游戏突破10亿美元。2.· 对游戏的平均年龄在18岁左右。· 大约60%以上的游戏超过16岁。· 39%的玩家是女性。· 网络游戏的比例 - 其他(40%),青少年(44%),成年人(12%)。· 受欢迎的3类游戏 - 动作类(30%),体育类(18%),竞赛类(10%)。· 嘴受欢迎的3类计算机游戏 - 战略(27%),家庭/儿童娱乐类(20%
21、),射击类(16%)。 三、 游 戏 的 安 装(一) 安装directx(june2008) 安装directx(june2008)如下图1-1: 图1-1安装成功如下图1-2:图1-2(二) 安装游戏的服务端与客户端1 游戏服务端安装如下图1-3:图1-32游戏客户端安装如下图1-4:图1-4 (三) 成功安装游戏成功安装完游戏后在电脑桌面会出现下图 1-5 :(gameserver为游戏服务端,gameclient为游戏客户端)图1-5四、 界面设计和需求分析(一) 游戏设计界面和功能分析1. 打开服务端并启动服务器 如下图2-1图2-12. 服务器的功能包括处理客户端发送过来的所有信息
22、然后再分发回客户端。在工作中的服务器如下图2-2图2-23. 打开游戏客户端,登陆网络服务器,界面如图2-3所示,在界面中输入服务器ip地址和用户名密码,登录服务器后,转入下一步骤。图 2-34. 进入游戏客户端的平台,点击英语接龙进入房间管理界面, 在房间管理界面双击房间可以进入房间,如果想自己创建房间游戏可以在房间管理的空白位置右击鼠标选中新建来创建自己想要创建的房间(玩家可新建并自行命名房间,并选择二人玩、三人玩、四人玩等房间类型)。 如下图 2-4 ,2-5 与 2-6:图2-4图2-5 图2-6 5. 进入房间,等待其他玩家加入游戏,当进入的人数达到房间规定的人数时,开始的按钮会变成
23、可点击的,点击“开始”按钮便可以进入游戏。游戏过程中玩家可以在聊天窗口发送信息互相交流。界面如图2-7所示和图2-8图2-9所示。 图2-7 图2-8 图2-9 6.如果游戏中出现重复的输入则出现如下图的提示, 界面如图2-10:图2 -107.游戏结束时,会显示胜负与玩家的分数。界面如图2-11: 图 2-11每个窗体都栩栩如生,游戏中的细节更是咄咄逼人,只有在游戏中体会了。(二)功能分析及设计根据的需求调查与分析和大多数开发者的实际工作,将“英格洛斯接龙”游戏功能设计为网络多人游戏,并附加计时计分功能。多人游戏是联机竞赛功能(局域网或外网都可以设置)。多人网络游戏功能设计如下:l 用户登陆
24、服务器:游戏采用用户名、密码和服务器ip地址方式登陆。l 创建或进入房间:可以根据自己的选择,创建自己的房间和加入已有的房间,房间分为:单人练习,2人房间,3人房间,4人房间。l 词汇默认为全部词汇量。l 游戏设置的单词个数由游戏设计者设定。l 单词回答的限时时间由游戏设计者设置。五、 算法设计与实现(一)游戏规则说明l 多人网络游戏规则:该网络游戏有玩家登录服务器、游戏管理、房间管理等功能,玩家在登录进入游戏平台后,可以选择进入英语接龙游戏,获取系统支持的游戏房间列表,游戏房间定义了允许同时进行同一游戏的玩家数量,在满足游戏开始条件时,同一房间的玩家可以开始游戏。游戏采用多回合抢答模式,先答
25、对者得分,每回合设置答题时间限制,超过限制时间时,系统将自行产生一个答案,所有玩家均不得分,游戏继续。在游戏结束时得分多者获胜。l 游戏设置的单词的总个数到达时是你本轮游戏的总时间,在这规定的时间里你能输入多少单词直接决定你的胜负;游戏单步时间是你在输入一个单词到接下来输入下一个单词的间隔时间。单单词到达设置的个数时,游戏结束。(二)游戏的算法1加载单词把单词从文本文件中加载进一个变量数组中,根据单词的开头字母进行排序并存储在相应的数组中,算法如下:public static void readword() for (int i = 0; i < 26; i+) arrtexti = n
26、ew arraylist(); streamreader sr = new streamreader(type(); string sline = "" while (sline != null) sline = sr.readline(); if (sline != null) int n = -1; if (sline0 < 'a') n = sline0 - 'a' else n = sline0 - 'a' if (n >= 0 && n < arrtext.length) arrte
27、xtn.add(sline); sr.close(); for (int integer = 0; integer < 26; integer+) arrtextinteger.sort(); 2随机产生开始的单词产生单词分成两部分,首先随机产生26个字母中的一个,然后以所产生的字母为首字母,再从该字母开头的单词列表中随机产生一个单词。算法如下:public static string word() system.random r1 = new random(); int num1 = r1.next(0, 25); int length = arrtextnum1.count; sys
28、tem.random r2 = new random(); int num2 = r2.next(0, length); return arrtextnum1num2.tostring();1. 判断输入的单词是否在所选的词汇列表中采用折半查找算法,该算法大大提高了游戏的速率,主要算法如下:public static bool binarysearch(string search_content,byte tage) arraylist arrlist = new arraylist(); if(tage=1) arrlist=arrtextsearch_content0 - 'a
29、39; else if (tage = 2) inword.sort(); arrlist = inword; int small = 0; int big = arrlist.count - 1; int mid; while (small < big) mid = (small + big) / 2; if (string.compare(search_content, arrlistmid.tostring() = 0) return true; if (string.compare(search_content, arrlistmid.tostring() > 0) sma
30、ll = mid + 1; else big = mid - 1; if (small = big && string.compare(search_content, arrlistsmall.tostring() = 0) return true; return false; 2. 自动产生和填充单词如果在规定的时间没有输入正确的单词,服务器根据玩家输入的最后一个单词随机产生出来一个合乎游戏规则的单词,算法如下public static string computertxt(string front) int index = frontfront.length - 1 - &
31、#39;a' int length = arrtextindex.count; string tempword; while (true) system.random r3 = new random(); int num3 = r3.next(0, length); tempword = arrtextindexnum3.tostring(); boolean repetitionword =binarysearch(tempword, 2); if (!repetitionword) inword.add(tempword); return tempword; 3. 游戏引擎采用引擎
32、来统领整个游戏,使游戏在扩充和更新的时候更加容易和方便。下面是游戏引擎的精灵类算法: public class sprite: icloneable public sprite() m_id = m_counter+; protected sprite(sprite sprite):this() foreach (animation animation in sprite.m_animations) /设置精灵循环出现 m_animations.add(animation)animation.clone(); m_currentanimationindex = sprite.m_current
33、animationindex; m_name = sprite.m_name; m_collisionrectangle = sprite.m_collisionrectangle; m_velocity = sprite.m_velocity; m_position = sprite.m_position; m_scale = sprite.m_scale; m_rotation = sprite.m_rotation; m_visible = sprite.m_visible; m_active = sprite.m_active; m_showallpixels = sprite.m_s
34、howallpixels; m_opacity = sprite.m_opacity; m_zorder = sprite.m_zorder; m_localmatrix = sprite.m_localmatrix; public void add(animation animation) /添加精灵 m_animations.add(animation); public int count get return m_animations.count; public int animationindex /设置并获取精灵索引值 set if (value >= m_animations
35、.count) value = m_animations.count - 1; else if (animationindex < 0) value = 0; m_currentanimationindex = value; get return m_currentanimationindex; public animation animation /当前精灵 get return m_animationsm_currentanimationindex; public bool visible get return m_visible; set m_visible = value; pu
36、blic bool active set m_active = value; get return m_active; public pointf position set m_position = value; / updatecollisionrectangle(); get return m_position; public vector2 velocity set m_velocity = value; get return m_velocity; public float scalex /坐标设置 set m_scale.x = value; get return m_scale.x
37、; public float scaley /坐标设置 set m_scale.y = value; get return m_scale.y; public float rotation /旋转 set m_rotation = value; get return m_rotation; public void internalupdate() /界面的重定位 if(!m_active) return; if (m_animations.count != 0) m_animationsm_currentanimationindex.update(); m_position.x += m_ve
38、locity.x; m_position.y += m_velocity.y; matrix trans = matrix.translation(m_position.x, m_position.y, 0); /平移 matrix rot = matrix.rotationz(m_rotation); /旋转 matrix scaling = matrix.scaling(m_scale.x, m_scale.y, 0); /缩放 int picturewidth = m_animationsm_currentanimationindex.currentpicture.width; int
39、pictureheight = m_animationsm_currentanimationindex.currentpicture.height; float newpicwidth = math.abs(scaling.m11 * picturewidth); float newpicheight = math.abs(scaling.m22 * pictureheight); float ltx = scaling.m11 < 0 ? newpicwidth : 0; float lty = scaling.m22 < 0 ? newpicheight : 0; ltx -=
40、 newpicwidth / 2; lty -= newpicheight / 2; matrix loctrans = matrix.translation(ltx, lty, 0); m_localmatrix = scaling * loctrans * rot * trans; updatecollisionrectangle(); private void updatecollisionrectangle() /图片定位 int picturewidth = m_animationsm_currentanimationindex.currentpicture.width; int p
41、ictureheight = m_animationsm_currentanimationindex.currentpicture.height; m_collisionrectangle.x = 0; m_collisionrectangle.y = 0; m_collisionrectangle.width = picturewidth; m_collisionrectangle.height = pictureheight; m_collisionrectangle.offset(int)(-picturewidth / 2 + m_position.x), (int)(-picture
42、height / 2 + m_position.y); public virtual void update() public void render() if (!m_visible | !m_active | m_opacity < 0) return; if (m_showallpixels) game.device.renderstate.alphatestenable = false; else game.device.renderstate.alphatestenable = true; if (m_opacity >= 100) game.d3dsprite.begi
43、n(spriteflags.none); else game.d3dsprite.begin(spriteflags.alphablend); int alpha = (m_opacity * 255) / 100;game.d3dsprite.draw2d(m_animationsm_currentanimationindex.currentpicture.texture, new point(0, 0), 0, new point(0, 0), color.fromargb(alpha, 255, 255, 255); game.device.transform.world = m_loc
44、almatrix; game.d3dsprite.end(); public int zorder set m_zorder = value; get return m_zorder; public int opacity set m_opacity = value; get return m_opacity; public bool showallpixels set m_showallpixels = value; get return m_showallpixels; public bool collideswith(sprite sprite) return m_collisionre
45、ctangle.intersectswith(sprite.m_collisionrectangle); public static int comparisonzorder(sprite sprite1, sprite sprite2) int r = sprite2.m_zorder - sprite1.m_zorder; if (r = 0) return sprite2.m_id - sprite1.m_id; else return r; public virtual object clone() return new sprite(this); #region privatedata list<animation> m_animations = new list<animation>(); int m_currentanimationindex; st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第二章向量概念及运算教案
- 《麦哨》教学设计
- 乡村道路片石挡土墙施工合同
- 企业内部评审员管理办法
- 人教版小学二年级语文下册全册教案
- 惠州市燃气租赁合同
- 建筑工程绿化协议
- 汽车用品店加油站施工合同
- 城市景观墙体租赁协议
- 橡胶性能计量器具规范
- 期中(1-4单元)(试题)-2024-2025学年六年级数学上册西师大版
- 无人机应用技术专业申报表
- 秋季宜宾东辰国际学校小升初超越杯数学试题(含参考答案)
- 老挝的建筑文化
- 临床营养评价
- 氮气二氧化碳辅助吞吐技术研究与应用
- 常用能源的碳排放因子
- 新产品开发管理程序(GPDP)-上汽变速器制造标准
- 学校周边环境综合治理排查表(共4页)
- 大一基础化学复习题
- 施工放样_(2)
评论
0/150
提交评论