俄罗斯方块游戏课程设计报告.docx

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
摘要Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。目录 引言11研究方法11.1俄罗斯方块游戏的基本要求11.1.1游戏基本功能:移动、加速、变形、消除、游戏结束等。11.1.2显示下一个方块。11.1.3游戏难度岁分数递增。11.1.4玩家自己设置游戏难度、开始、暂停等。11.1.5分数的统计等。12、研究过程12.1、模块设计12.1.1、控制面板类12.1.2、块类22.1.3、游戏主类22.1.4、方格类22.1.5、画布类22.2、详细设计22.2.1、游戏控制22.2.2、方块设计32.2.3、画布设计43、运行结果63.1、初始画面:63.2、游戏设置界面:73.3、游戏进行中的界面:83.4、游戏结束界面:94、心得体会95、参考文献:96、附录:游戏主类代码9引言开发一个单机游戏系统,能够实现俄罗斯方块程序。通过键盘按键可以调整方块的旋转方向。最终达到能够通过本次课程设计,进一步巩固所学java知识,学会将理论用于实践,掌握所学知识的实验意义。操作系统:windows xp,开发工具:Myeclipse 开发语言:java1研究方法1.1俄罗斯方块游戏的基本要求1.1.1游戏基本功能:移动、加速、变形、消除、游戏结束等。1.1.2显示下一个方块。1.1.3游戏难度岁分数递增。1.1.4玩家自己设置游戏难度、开始、暂停等。1.1.5分数的统计等。2、研究过程2.1、模块设计2.1.1、控制面板类继承自JPanel.上边安放预显窗口、等级、得分、控制按钮。主要用来控制游戏进程。2.1.2、块类继承自线程类(Thread)由 4 * 4 个方格(ErsBox)构成一个块,控制块的移动、下落、变形等。2.1.3、游戏主类继承自JFrame类,负责游戏的全局控制。内含: 一个GameCanvas画布类的实例引用;一个保存当前活动块(ErsBlock)实例的引用; 一个保存当前控制面板(ControlPanel)实例的引用。2.1.4、方格类是组成块的基本元素,用自己的颜色来表示块的外观。2.1.5、画布类内有行数 *列数个方格类实例。继承自JPanel类。 ErsBlock线程类动态改变画布类的方格颜色,画布类通过 检查方格颜色来体现ErsBlock块的移动情况。2.2、详细设计2.2.1、游戏控制一轮游戏过程,实现了Runnable接口。一轮游戏是一个大循环,在这个循环中,每隔100毫秒,检查游戏中的当前块是否已经到底了,如果没有,就继续等待。如果到底了,就看有没有全填满的行,如果有就删除它,并为游戏者加分,同时随机产生一个,新的当前块,让它自动下落。当新产生一个块时,先检查画布最顶上的一行是否已经被占了,如果是,可以判断Game Over了。 代码示例:privateclass Game implements Runnable {publicvoid run() {int col = (int) (Math.random() * (canvas.getCols() - 3)), style = ErsBlock.STYLES[(int) (Math.random() * 7)][(int) (Math.random() * 4)];while (playing) {if (block != null) { //第一次循环时,block为空if (block.isAlive()) {try {Thread.currentThread().sleep(100);} catch (InterruptedException ie) {ie.printStackTrace();}continue;}}checkFullLine(); //检查是否有全填满的行if (isGameOver()) { //检查游戏是否应该结束了miPlay.setEnabled(true);miPause.setEnabled(true);miResume.setEnabled(false);ctrlPanel.setPlayButtonEnable(true);ctrlPanel.setPauseButtonLabel(true);reportGameOver();ret

您可能关注的文档

文档评论(0)

2749166188 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档