基于J2ME平台的俄罗斯方块游戏设计与实现.doc_第1页
基于J2ME平台的俄罗斯方块游戏设计与实现.doc_第2页
基于J2ME平台的俄罗斯方块游戏设计与实现.doc_第3页
基于J2ME平台的俄罗斯方块游戏设计与实现.doc_第4页
基于J2ME平台的俄罗斯方块游戏设计与实现.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大学毕业论文 毕 业 设 计课程名称: 基于j2me平台的俄罗斯方块游戏设计与实现 专业名称: 计算机科学与技术(网络工程) 学 号: 姓 名: 指导教师: 目录摘要3第一章 绪论61.1手机游戏的前景与开发61.1.1 前景61.1.2 开发71.2国内外手机游戏的现况71.2.1 国内手机游戏概况71.2.2 国外手机游戏概况81.3 俄罗斯方块游戏开发背景101.4 本章小结10第二章j2me技术基础122.1什么是手机游戏122.2 j2me简介122.2.1 java 2平台划分122.2.2 j2me概述132.2.3 j2me的配置142.2.4 j2me体系结构152.2.5 kvm简介172.2.6 midp172.3 本章小结18第三章 系统设计183.1 游戏规则设定183.2 总体设计193.3 系统设计的主要功能203.3.1游戏主体界面的绘制203.3.2 游戏图形的绘制213.3.3 图形的移动与旋转控制213.3.4 游戏方块的颜色选择223.3.5 俄罗斯方块的自动消行功能223.4 本章小结22第四章 系统实现224.1 游戏主体功能的实现224.1.1添加方块到地图数据234.1.2 方块变形244.1.3 方块移动244.1.4 消行244.2 其他功能的实现244.3 本章小结24第五章 小结25致谢25参考文献26摘要随着通信技术的发展和手机的普及,手机游戏的开发技术越来越为人们所关注。以j2me为开发平台,利用java提供强大工具,不但可以在手机上实现静态html技术所无法实现的计算处理、数据存储、与服务器的通信等功能,而且能够开发各种手机游戏。j2me(java 2 micro edition)是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术,它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案。j2me亦称作java me,是为机顶盒、移动电话和pda之类嵌入式消费电子设备提供的java语言平台,包括虚拟机和一系列标准化的java api。它和java se、java ee一起构成java技术的三大版本,并且同样是通过jcp(java community process)制订的。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。本文是应用j2me平台实现俄罗斯方块游戏界面、控制、显示、播放、道具使用等游戏基本规则需求,游戏设计与实现平台为j2me。关键词:java 、j2me平台 、 俄罗斯方块abstractwith the development of communication technology and the popularity of mobile phones, mobile phone game development technology is more and more concern for people.to j2me development platform, the use of java provides a powerful tool, not only static html can not be achieved on the phone computing, data storage, communication with the server functions, and to develop a variety of mobile games.j2me (java 2 micro edition) in recent years, with a variety of equipment, especially the rapid development of mobile communications equipment and the birth of a new development technology, it is positioned in the consumer electronics applications, intelligent devicesand diversified, providing a revolutionary solution. j2me also known as java me, java language platform for set-top boxes, mobile phones and pdas, embedded consumer electronics devices, including virtual machine and a standardized set of java apis. and java se, the java ee together constitute the three versions of the java technology, and as the jcp (the java community process) formulated. the basic rules of tetris move, rotation and placed in the game automatically output box, so arranged in a complete one or more lines and eliminate the score. this is the application j2me platform tetris game interface, control, display, playback, demand for the use of props such as basic game rules, game design and implementation platform for the j2me.keywords: java, j2me platform, tetris第一章 绪论1.1手机游戏的前景与开发1.1.1 前景在地铁、机场和车站,我们可以看到越来越多的人低头玩着手机游戏,伴随着不断变化的表情,或皱眉或微笑。当我们购买新的手机,也会发现越来越多嵌入手机系统的娱乐功能,特别是各种精彩的游戏。手机已经成为许多人生活的一部分,人们也渐渐习惯于将手机作为新的娱乐工具。越来越多的人陶醉于手机游戏带来的新鲜体验。由于手机的便携性,使得手机游戏随着手机的普及在全世界风行起来。到2003年,以中国大陆为例,手机在人们的生活中已经扮演着举足轻重的角色平均每5人1部手机的拥有量首次超越了固定电话,随身携带手机成了很多人自然而然的习惯。截止2003年的第四个季度,中国手机用户突破了2.5亿大关,手机成为使用最频繁的通信工具,进而引爆了手机娱乐这个巨大的市场。 而今的手机游戏种类繁多。最常见的是已经内嵌在手机中,比如很多品牌手机提供的“贪食蛇”游戏。这些是由手机制造商开发,在出厂前就直接固化在手机中的游戏,用户既不能添加也无法删除,当然玩的时候也无需付费。第二种游戏也是提前固化在手机中,比如常见的移动qq,但这种游戏是游戏商和手机厂商合作的结果,用户在玩游戏的时候需要支付一些费用。还有一种则是供用户自行选择下载的游戏,用户可以根据自己的兴趣爱好和手机的硬件支持来决定下载某一款游戏,或是删除已经下载的游戏。通过这种方式,在手机有限的系统资源限制下,用户可以不断地体验新款游戏。由于可以满足用户的个性化需求,下载类游戏显示出了巨大的市场潜力,可能成为游戏产业新的增长点。1.1.2 开发现在手机应用的通用开发平台主要有两个,一个是java,一个是brew。brew是binary runtime environment for wireless(无线二进制运行环境)的缩写,是美国高通公司(qualcomm)为无线数据应用程序开发和执行提供的通用接口。java是由java虚拟机和java核心类所构成。它为纯java程序提供了统一的编程接口,而不管下层操作系统是什么。 java是一个可以在不同操作系统(例如windows,unix等)上运行的编程语言,java平台是指运行在各种终端(如pc、服务器、移动设备、嵌入式设备)的系统软件。pc机上的java程序是用javase开发出来的,服务器端的java程序是用javaee开发出来的,移动设备的java程序是用javame开发出来的。1.2国内外手机游戏的现况1.2.1 国内手机游戏概况 目前,手机游戏发展到了一个新的阶段。iphone手机以其超前的设计理念和华丽的外表征服了一大群青年人,越来越多的人使用苹果手机了。但是苹果手机的独特硬件条件,不一样的操作系统和另类的操作模式,使得iphone手机的游戏必须通过定制。也就是说,有部分手机游戏开发商是基于特定的系列手机或是特定的操作系统设计的;也有部分开发商是以通用手机开发的。 自从2003年,中国移动推出了“移动百宝箱”业务以后,国内的手机游戏产业经过前几年的艰难成长期以后,已经成为继短信业务之后,无线增值服务业务中的一大金矿。根据2009年市场调查报告指出,“移动百宝箱”业务注册用户已超过9000万,这意味着,在中国,有近9000万人尝试过玩手机游戏。现在全国手机用户已超过了5亿,而且人数还在不断地增加中,面对如此大的一个市场,诺基亚、摩托罗拉等手机终端生产厂商已经越来越重视手机游戏对手机销售的带动作用,以手机游戏为卖点的手机产品在不断地推出。 游戏进入手机是科技发展的必然趋势,不管是单机游戏还是网络游戏都最终将逐步向手机平台靠拢,或者说,起码一部分硬件要求不高的休闲益智类游戏已经在向手机平台靠拢了。现在国内手机游戏与国外手机游戏仍存在一段不小的差距,具体体现在: 、产品创意 这也就是通常所说的设计理念和游戏策划了。一款游戏的成功,很大程度上取决于游戏的创意和游戏的策划。产品创意就如同软件工程中的需求分析一样重要。国内手机游戏往往是缺乏好的创意,只是一味的抄袭国外成功案例或移植pc机上比较经典的案例。 、程序开发 虽然国内手机游戏的发展历程很短,只是近几年才兴起的,但其实并不缺少优秀程序员。可是,由于国内并没有大型的手机游戏公司,很多公司都是给日韩或欧美公司做游戏外包。国产游戏开发商对资金投入的也不多,这就导致优秀人才的外流。现在很多小型的国产手机游戏公司里的程序员都是只有几年java或c+编程经历的程序员转型过来的,甚至有些公司为了节约成本,专门聘请刚大学毕业的本科生,这就导致很多游戏程序员是为了编程而编程;而国外的游戏程序员本来自身就对游戏有一定的热爱,在游戏编写过程中还能从玩家的角度考虑整个游戏的流程是否合理1.2.2 国外手机游戏概况根据调查结果统计显示,去年全球手机游戏市场的收入,包括流量收入,达到110亿美元,其中亚洲市场占了大部分。目前国际手机游戏市场主要是日韩,欧洲和美国三足鼎立。 1、日韩 日本在手机游戏领域绝对处于领导地位。早在1999年,当包括北美以及欧洲一些经济发达国家对手机游戏还一无所知的时候,日本已经拥有超过30万的手机游戏玩家,占了全世界手机游戏玩家的70左右。日本手机游戏发展迅速有一个主要原因,是因为日本原来就是游戏产业大国。世界上传统游戏市场基本就由日本的索尼,任天堂,世嘉等游戏厂商所垄断,他们掌握了丰富的pc游戏资源和大量的游戏素材,能很快的从一个平台转移到另一个平台进行开发。 韩国为了转移国民对经济危机注意力,大力的推动游戏产业的发展。在传统游戏中,wcg已经成为每个职业电子竞技玩家最高的梦想。由于有了政府大量优惠政策和充足的资金注入,在韩国催生了大批的手机游戏开发商,大力的推动了手机游戏的发展。 2、欧洲 虽然欧洲很早就推出了手机游戏业务,第一款手机游戏“贪吃蛇”也是欧洲的诺基亚公司制作的,但2003年以前,欧洲的手机游戏市场还一直停留在短信游戏阶段,与日韩相比,欧洲手机游戏市场相对要落后一些。不过,随着手机游戏市场的扩大,越来越多的欧洲手机运营商看到了里面的商机,大量引入日韩手机游戏运作模式,这也极大的推动了欧洲手机游戏的发展。 3、美国 虽然美国手机游戏的起步相对是最晚的,但其发展势头却相当迅速。2002年美国大多数移动网络速度进行提升后,手机游戏的发展就更为迅速了。如今,美国移动运营商每周都在推出新的游戏,手机生产厂商也在不断的推出支持新游戏的产品。从游戏提供的数量上来看,美国移动运营商已经大大超过了欧洲移动运营商了。 根据美国分析师表示,美国手机游戏业务的迅速发展,使得手机平台有望成为继电脑、控制杆、掌机游戏、互联网之后的第五大游戏平台。1.3 俄罗斯方块游戏开发背景本文制作的手机游戏名为俄罗斯方块。 俄罗斯方块上手极其简单,但是要熟练地掌握其中的操作与摆放技巧,难度却不低。作为家喻户晓老少皆宜的大众游戏,其普及程度可以说是史上任何一款游戏都无法相比的。但是,谁知道这么优秀的娱乐工具,出自哪位神人之手呢?顾名思义,俄罗斯方块自然是俄罗斯人发明的。这位伟人叫做阿列克谢帕基特诺夫(alexey pazhitnov) 。 俄罗斯方块的一些基本规则:1、一个用于摆放小型正方形的平面虚拟场地,其标准大小:行宽为10,列高为20,以每个小正方形为单位; 2、一组由4个小型正方形组成的规则图形,英文称为tetromino,中文通称为方块,共有7种,分别以s、z、l、j、i、o、t这7个字母的形状来命名(如图); 3、通过设计者预先设置的随机发生器不断地输出单个方块到场地顶部,以一定的规则进行移动、旋转、下落和摆放,锁定并填充到场地中。每次摆放如果将场地的一行或多行完全填满,则组成这些行的所有小正方形将被消除,并且以此来换取一定的积分或者其他形式的奖励。而未被消除的方块会一直累积,并对后来的方块摆放造成各种影响。 4、如果未被消除的方块堆放的高度超过场地所规定的最大高度(并不一定是20或者玩家所能见到的高度),则游戏结束。1.4 本章小结本章详尽地叙述了手机游戏的发展前景,以及本文所述游戏的一些背景与基本规则。第二章j2me技术基础2.1什么是手机游戏手机游戏是指运行于手机上的游戏软件。目前用来编写手机最多的程序是java语言,见j2me。其次是c语言。随着科技的发展,现在手机的功能也越来越多,越来越强大。而手机游戏也远远不是我们印象中的什么“俄罗斯方块”捕鱼达人“贪吃蛇”之类画面简陋,规则简单的游戏,进而发展到了可以和掌上游戏机媲美,具有很强的娱乐性和交互性的复杂形态了。手机游戏有以下特点:1. 庞大的潜在用户群全球在使用的移动电话已经超过10亿部,而且这个数字每天都在不断增加。在除美国之外的各个发达国家,手机用户都比计算机用户多。手机游戏潜在的市场比其他任何平台,比如playstation和gameboy都要大。2. 便携性在控制台游戏时代,gameboy热销的一个原因就是便携性人们可以随时随地沉浸在自己喜欢的游戏中,还可以随时随地抢购自己喜欢的装备或宠物。和游戏控制台或者pc相比,手机虽然可能不是一个理想的游戏设备,但毕竟人们总是随时随身携带,这样手机游戏很可能成为人们消遣时间的首选。3. 支持网络因为手机是网络设备,在一定限制因素下可以实现多人在线游戏。2.2 j2me简介2.2.1 java 2平台划分认识到一种结构不可能适应所有的情况,所以,sun公司将java划分成3个不同的版本,每个版本都针对当今计算机产业中的一个特定领域: 1j2ee(java 2 platform,enterprise edition),用于企业为客户、供应商和员工的可升级的服务器解决方案。 2j2se(java 2 platform,standard edition),用于常见的桌面计算机市场和低端商务应用提供解决方案。3j2me(java 2 platform,micro edition),用于消费产品和嵌入式设备的最佳解决力一案。他们之间的关系如图2-1所示:j2eej2sej2mesmart card 图2-1 java的体系结构2.2.2 j2me概述j2me 是什么?sun microsystems 将 j2me 定义为“一种以广泛的消费性产品为目标的的高度优化的 java 运行时环境,包括寻呼机、移动电话、可视电话、数字机顶盒和汽车导航系统。”自从 1999 年 6loper conference 上声明之后,j2me 为小型设备带来了 java 语言的跨平台功能,允许移动无线设备共享应用程序。有了 j2me,sun 已经使 java 平台能够适应集成了或基于小型计算设备月在 javaone deve的用户产品。j2me 总体架构j2me 使用配置和简表定制 java 运行时环境 (jre)。作为一个完整的 jre,j2me 由配置和简表组成,配置决定了使用的 jvm,而简表通过添加特定于域的类来定义应用程序。虽然 j2se 虚拟机通常被称为一种 jvm,但是 j2me 虚拟机、kvm 和 cvm 都是 jvm 的子集。kvm 和 cvm 均可被看作是一种 java 虚拟机 - 它们是 j2se jvm 的压缩版,并特定于 j2me。2.2.3 j2me的配置配置将基本运行的环境定义为一套核心类和一个运行在特定类型设备上的特定的jvm。j2me分为两个配置:一个是cdc(connected device configuration),另一个是cldc(connected limited device configuration)。它们所针对的设备的cpu和内存是不一样的,所以它们所使用的虚拟机和核心类库也不相同。cdc主要针对32位及75mhz以上的处理器,cldc主要针对16位,32位及16mhz以上的处理器。cdc用的虚拟机是cvm,而cldc用的是kvm。同其处理器和内存能力相适应,cvm包含更多的虚拟机处理能力。cdc的核心类库也比cldc的要大。j2me 环境可以被动态地配置为提供运行应用程序所需要的环境,而不用考虑是否为设备提供了运行该应用程序所需的所有java技术库。核心平台接收应用程序代码和库。运行在网络上的服务器软件执行配置工作。cdc针对的设备主要是数字电视、顶置盒、网络电话、车载计算设备和server后端的一些应用。这些设备的特点是有线连接,稳定而持续的电源供应,设备资源比较受限。cldc简要描述了高度限制设备上每个j2me执行所要求的一套最基本的库和java 虚拟机特征。所针对的设备主要是无线的手持设备,pda或pos机。这些设备的特点是无线连接(带宽受限,连接时断时续),没有稳定的电源供应(通常使用电池)且和资源极少。cldc现在在国内外用得比较广泛的是手机上的使用,在日本和韩国已经有了许多成功的实例。cldc的设计目标是定义一个标准的,占用内存极少的平台来满足资源很少的那些设备的要求。它可以确保动态,安全地将交互式java应用部署到一些小的设备上去。确保 第三方的应用开发人员可以为别的设备开发应用程序。cldc 1.0版由18个公司通过jcp组织来制定,它定义了所使用的java虚拟机和核心类库用在一些小的具有java能力的设备空间。kvm是cvm的一个子集,cldc的核心类库也大部分包含在cdc的核心类库中,但cldc也定义了一些自已的类库。再加上外围的profile和oem extension api组成了一个完整的j2me环境。2.2.4 j2me体系结构j2me的体系结构是基于设备的类别的。一个类别定义了一个特定种类的设备:手机、简单寻呼机和电脑记事本都是单独的类别。为了支持有限连接设备类别所要求的那种灵活性和可定制性,snu公司将j2me体系结构设计成模块化的和可伸缩的。j2me技术在一个完整的应用程序运行时模型中定义了这种模块性和可伸缩性,在该模型中的三个软件层都构建在设备的主机操作系统上。图2-2描述了j2me的体系结构:profilejava virtual machineconfigurationhost operating system图2-2 j2ee体系结构1主机操作系统层(host operating systeam layer):这一层为特定硬件设备的操作系统层。2java虚拟机层(java virtual machine layer):这一层是java虚拟机的一个实现,它是为特定设备的主机操作系统定制的,支持一个特定的j2me配置。3配置层(configuration layer):配置层定义java虚拟机的功能和特定类别设备上可用的java类库的最小集。从某种程度上说,一个配置定义了java平台的功能部件和库的共同性,开发者可以假设这些功能部件和库在属于某一特定类别的所有设备上都是可用的。这一层对用户是透明的,但它对描述的实现者非常重要。4描述层(profile layer):描述层定义了特定类别设备上可用的应用程序编程接口的最小集。描述在一个特定的配置上实现。应用程序是针对特定的描述编写的,因此可以移植到支持该描述的任何设备上。一个设备可以支持多个描述。用户和应用程序开发者看到最多的就是这一层。java虚拟机层、配置层和描述层一起为j2me应用程序提供了一个标准的运行时环境,这个环境允许新的应用程序和服务动态地被安装到各种终端用户设备上。在手机上,kvm,cldc,midp分别实现了j2me体系结构中的java虚拟机层、配置层和描述层。下面,作者通过对kvm, cldc, midp的详细介绍,以加深读者对手机上的j2me体系结构的认识。2.2.5 kvm简介kvm 是最小的运行时环境的一部分,包含在 java 2 platform, micro edition(j2me 平台)软件中,适用于那些内存和 cpu 能力有限的设备。移动电话、寻呼机和个人数字助理 (pda) 中通常会运行 kvm,用以提供常见的计算功能。 kvm 类似于 jvm(java 虚拟机),它也包含运行用 java 技术编写的应用程序和小应用程序的引擎。kvm 适用于无线电话和移动设备,而 jvm 则适用于计算机。java 2 platform, standard edition(j2se 平台)包含 jre、plug-in 软件和 jvm。 j2me 技术使用包括 kvm 在内的许多不同大小的虚拟机。kvm 只是 cldc(有限连接设备配置)的一项应用,它用于在移动设备上运行 java 软件。 2.2.6 midpmidp(mobile information device profile,移动信息设备配置文件)建立在 cldc 的基础之上,用来描述手机和寻呼机这样更加具体化的的无线移动设备。对于 java me 平台,midp 定义了一个标准的 java api 集合,此集合与联网的受限设备配置 cldc 一起提供了一个面向移动信息设备(如移动电话、双向寻呼机和无线个人电脑记事本)的完整 java me 应用程序运行环境。它的功能有:显示工具箱 用户输入方法 持久性数据存储(使用简单的面向记录的数据库模型) 基于http 1.1 的网络(使用 cldc 通用连接框架)2.3 本章小结本章较为详细地介绍了制作手机游戏的基础平台j2me。第三章 系统设计3.1 游戏规则设定1、一个用于摆放小型正方形的平面虚拟场地,其标准大小:行宽为10,列高为20,以每个小正方形为单位。 2、一组由4个小型正方形组成的规则图形,英文称为tetromino,中文通称为方块共有7种,分别以s、z、l、j、i、o、t这7个字母的形状来命名。 i:一次最多消除四层 j(左右):最多消除三层,或消除二层 l:最多消除三层,或消除二层 o:消除一至二层 s(左右):最多二层,容易造成孔洞 z (左右):最多二层,容易造成孔洞 t:最多二层 (1)部分游戏有单格方块,可以穿透固定的方块到达最下层空位。其他的改版中出现更多特别的造型。 方块会从区域上方开始缓慢继续落下。 (2)玩家可以做的操作有:以90度为单位旋转方块,以格子为单位左右移动方块,让方块加速落下。 (3)方块移到区域最下方或是着地到其他方块上无法移动时,就会固定在该处,而新的方块出现在区域上方开始落下。 (4)当区域中某一列横向格子全部由方块填满,则该列会消失并成为玩家的得分。同时删除的列数越多,得分指数上升。 (5)当固定的方块堆到区域最上方而无法消除层数时,则游戏结束。 (6)一般来说,游戏还会提示下一个要落下的方块,熟练的玩家会计算到下一个方块,评估现在要如何进行。由于游戏能不断进行下去对商业用游戏不太理想,所以一般还会随着游戏的进行而加速提高难度。 3、通过设计者预先设置的随机发生器不断地输出单个方块到场地顶部,以一定的规则进行移动、旋转、下落和摆放,锁定并填充到场地中。每次摆放如果将场地的一行或多行完全填满,则组成这些行的所有小正方形将被消除,并且以此来换取一定的积分或者其他形式的奖励。而未被消除的方块会一直累积,并对后来的方块摆放造成各种影响。 4、如果未被消除的方块堆放的高度超过场地所规定的最大高度(并不一定是20或者玩家所能见到的高度),则游戏结束。 具体到每一款不同的游戏,其中的细节规则都可能有千差万别,但是以上的基本规则是相同的。3.2 总体设计 本游戏的操作流程分为如下几步:(1).用户启动midlet后,首先进入master/slave选择画面,如选择slave,则向周围广播自己的服务,然后等待;如是master,则搜索周围的服务。master端在搜索到服务后,将slave端的服务描述信息现实在屏幕上。(2).master选择想联机游戏的slave(广播服务可以是多个),建立连接。(3).按“开始”键,判断远端的玩家是否已经同意开始游戏(此时进入等待状态),如没有同意,则继续等待,并发送“等待”信号给远端玩家。(4).按“开始”键,如远端玩家已经“等待”,则“初始化”游戏,同时发送该信号给远端玩家。(5).开始游戏后,再按“开始”键,则暂停或游戏状态之间互相切换。(6).如受到对方游戏结束信号,则主屏上显示胜利画面,副屏上显示失败画面,如自己失败,则主屏上显示失败画面,副屏上显示胜利画面,并发送该信号给远端玩家。(7).如远端玩家退出或断开,则本地游戏玩家继续,代表远端玩家的状态值为退出或失去连接,并停止发送数据。3.3 系统设计的主要功能3.3.1游戏主体界面的绘制俄罗斯方块游戏的地图(在窗口用户区中绘制出的地图)为22行12列,用一个24行14列的数组存储每格的状态(被占据的方格为1,否则为0),其中第0行不显示;第23行,第0、13列不用。行数和列数分别用row和col表示,分别为24和14。窗口坐标系:x向右,y向下。为了与窗口坐标系一致,二维数组行循环变量用y,列循环变量用x。方块的当前位置(指最左上角方格在坐标系中的位置)为(currenty, currentx)。#include #define row 24/地图的行数目(第23行不用)#define col 14/地图的列数目(第0列和第13列不用)#define max_class 7/方块数目#define len 20/每个方格大小为2020像素#define starty -1 * len + 5/-15,绘制俄罗斯方块地图时的边界起始位置#define startx -1 * len + 5/-15int maprowcol;/存储俄罗斯方块地图中每格的状态(被占据为1,否则为0)int currentbox44;/当前落下的方块int currenty, currentx;/当前落下方块的当前位置(指左上角位置)int nextbox44;/下一个将落下的方块3.3.2 游戏图形的绘制在tetrisblock类中定义了7种方块的不同形状和对应的颜色,都有一个对应的id,分别为17,且对于每种方块来说,其颜色均是固定,方块由16个4*4的小方格组成,故在逻辑上可以使用4*4的二维数组表示,又由于每个方块都有4种旋转变化,故可以用4*4*4的三维数组表示一个方块的所有状态。protected int blockpattern1=/blockpattern1:“t”字及四种旋转形状 260000111001000000010011000100000001001110000000000100011001000000表3-1“t”字形方块3.3.3 图形的移动与旋转控制这个游戏的方块移动与旋转由键盘上的方向键控制,左键表示让方块向左移动,右键表示让方块向右移动,向下的方向键表示让方块加速下落,中间键则表示让方块旋转。3.3.4 游戏方块的颜色选择该游戏用一个颜色数组储存所有的游戏方块的颜色,游戏过程中下落的方块的颜色从数组中随机产生。3.3.5 俄罗斯方块的自动消行功能游戏中当一行被方块所填满后,那么在下一个下坠方块生成的同时,该行将自动消掉3.4 本章小结本章讲述了做俄罗斯方块的一些设想,以及一些需要实现的功能。第四章 系统实现4.1 游戏主体功能的实现该游戏主体在于游戏运行界面。当游戏运行后,下坠方块将实现向左、向右、旋转等一系列动作。运行游戏点击“开始”按钮,结束点“退出”按钮。下面是一些实现主体功能的代码及解说:4.1.1添加方块到地图数据众所周知,俄罗斯方块运行后界面将随机产生一个下坠的方块,在不做任何控制下,该方块将一直下落到界面底部。所以添加方块到地图数据是本游戏必不可少的一部,代码如下:*/ private void addbricktomap() for(int i = 0;i 4;i+) for(int j = 0;j = 0) (ccol + j maxcol) (crow + i maxr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论