最代码广告位
haidaozhi的gravatar头像
haidaozhi2017-08-08 21:56:52

java Swing开发俄罗斯方块游戏源码

代码量:1800行,简单易懂

                 java Swing开发俄罗斯方块游戏源码                 

基本规则:  

河南十一选五_[官网首页] 1、一个用于摆放小型正方形的平面虚拟场地,其标准大小:行宽为20,列高为25,以每个小正方形为单位。做为装饰的俄罗斯方块

  2、一组由4个小型正方形组成的规则图形。中文通称为方块。共有7种,分别以S、Z、L、J、I、O、T这7个字母的形状来命名。   

  3、通过设计者预先设置的随机发生器不断地输出单个方块到场地顶部,以一定的规则进行移动、旋转、下落和摆放,锁定并填充到场地中。每次摆放如果将场地的一行或多行完全填满,则组成这些行的所有小正方形将被消除,并且以此来换取一定的积分或者其他形式的奖励。而未被消除的方块会一直累积,并对后来的方块摆放造成各种影响。   

  4、如果未被消除的方块堆放的高度超过场地所规定的最大高度(并不一定是25或者玩家所能见到的高度),则游戏结束。

 

操作方法:

 1. 按游戏界面的"开始"按钮来开始游戏。

河南十一选五_[官网首页]  2. 键盘操作:系统缺省设置使用右边的窗口,用光标操作,"←"左移一格;"→"右移一格;"↑"旋转方块;↓ 下落方块。

  3. 计分牌显示的内容:“分数”为本局的分数,计分标准为下落一个块10分,一次消一行100分、2行400分、3行900分、4行1600分。“等级”为双方的游戏设置等级,当分数达到一定的值,等级就会提升、速度加快。

 

代码分析:

  1.model部分:里面包含了本项目的一些model,这里有三个类,Board,Cell,MyModel。河南十一选五_[官网首页]首先,Board是游戏的活动区域,是一个由n*m的方块区域。然后Cell只有两个属性,x,y。他们可以指定该方块在Board的位置,它是该游戏最基本的单元。四个Cell组成一个MyModel,MyModel共有7种,分别以S、Z、L、J、I、O、T。俄罗斯方块与其他游戏有点不同,整个游戏的难点部分在model这块。一开始,我也想了很对方法去实现model的实现,方法都是非常繁琐的,最后发现,把7*4个方块model都列出来倒是最简单的。

  2.界面部分是用swing完成的,整个游戏有一个Jframe构成。河南十一选五_[官网首页]欢迎界面也被嵌在这个Jframe中,当点击欢迎界面或者按任意键就使欢迎界面消失,进行游戏。在游戏界面中,有一个方块活动主区域,下一方块显示区域,记分牌,控制区域构成。

  3.控制器当然是整个项目的核心部分,在里面开始,暂停等一些简单的的方法就不做详细解释了。去操作一下timer线程就可以实现了。

  在这里移动的方法以下为例,先让model下移一格,判定当前位置是否能够移动,如果不能移动,就让model上移一格,在界面上显示当前model。河南十一选五_[官网首页]判断是否能移动的方式是:根据model上四个坐标到board上面去判定,如果坐标的超出底线,或超出左右线,或者当前坐标在board上面有cell存在都表示不能移动。

河南十一选五_[官网首页]  判断是否能消行的方法是遍历model四个点中的不重复的x值,利用这个x值到model中从左到右去判断那行,是否都有cell存在。如果都存在cell,那么表示能够消行。

  消行的方法为,将上面能消行的行值用一个list记录下来,遍历这个list,取出里面的行值,将该行上面的所有行下移一格,已达到消行效果。

  4.在该游戏中,加入了背景音和音效,组要用Applet接口实现。

 

java Swing开发俄罗斯方块游戏源码

gif动图


打赏

文件名:Chicktris.zip,文件大小:5961.142K下载
最代码最近下载分享源代码列表最近下载
yukaifeng LV42019年12月30日
月亮
安妮的小熊 LV62019年12月23日
月亮星星星星
Atiffiany LV12019年12月22日
星星
abcdefg211 LV12019年12月21日
星星
2017230032 LV12019年12月19日
星星
652901 LV12019年12月12日
星星
Wxb1778737779 LV12019年12月9日
星星
Gasonline LV22019年12月4日
星星星星
damuguaye LV12019年11月24日
星星
bealish LV22019年11月24日
星星星星
最代码最近浏览分享源代码列表最近浏览
暂无贡献等级
qq23632082032月10日
暂无贡献等级
名字随便的啦啦 LV61月27日
月亮星星星星
王deidei1月8日
暂无贡献等级
略略略vvv1月6日
暂无贡献等级
cxhgy0529 LV21月1日
星星星星
123456qxq LV12019年12月31日
星星
yukaifeng LV42019年12月30日
月亮
047295 LV42019年12月26日
月亮
安妮的小熊 LV62019年12月23日
月亮星星星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友

页面底部区域 foot.htm