本篇内容介绍了“Java实现俄罗斯方块游戏的代码怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!这里界面做的感觉不是很好看,但我觉得问题不大,功能到位就好!两块画布:画布1: 用来绘制静态东西免费云主机域名,比如游戏区边框、网格、得分区域框、下一个区域框、按钮等,无需刷新的部分。画布2: 用来绘制游戏动态的部分,比如 方格模型、格子的移动、旋转变形、消除、积分显示、下一个图形显示 等。首先创建一个游戏窗体类GameFrame,继承至JFrame,用来显示在屏幕上(window的对象),每个游戏都有一个窗口,设置好窗口标题、尺寸、布局等就可以。创建面板容器BackPanel继承至JPanel再创建一个Main类,来启动这个窗口。右键执行这个Main类,窗口建出来了创建菜单实现ActionListener并重写方法actionPerformedactionPerformed方法的实现绘制游戏区域边框绘制右边辅助区域(积分、下一个、按钮等)在BackPanel 中重写paint 方法,并调用刚才两个区域绘制方法。绘制得分区域和下一个区域绘制网格(15列 20行)在paint方法中调用创建游戏右边区域的一个暂停按钮此时基本布局已经完成了。GamePanel 继承至 JPanel 并重写 paint 方法修改Main类,将画布2也放到窗口中因为游戏区域被分成了一个个的小格子,每个小格子就是一个单位,整个网格就是一个15,、20的二维数组。于是第一行第一个元素,用数组下标来表示就是 0,0 、第一行第二个元素就是0、1这样就好办了,我们创建一个Block类,设置坐标和宽高即可绘制方块(宽高为固定20,与网格对应)。实例化这个类,并在paint方法中调用draw绘制方法在Block类加入移动方法两个参数 boolean xDir, int stepxDir 布尔值:true表示横向移动,false表示向下移动step是步数:当xDir为true,我们设定为 1 和 -1 横向移动1表示向右,-1表示向左移动;当xDir为true为false,向下移动为1(因为不能向上移动)。GamePanel添加键盘事件于是我操作一波七种图形如上图,如果我们以标红的小方块为原点(0,0)那我们分析一下图形其他几个方块的位置。比如上面图形,红色框住的为(0,0)的话,那最前面的那个是不是(-1,0),因为 y 他们是一样的,只要 x 往左边移动一个位置。以此类推,第3个应该是(1,0),第4个是(2,0)。此图形呢,标红的为(0,0),它正下方的那个应该是(0,1),它右边那个是(1,0),它右下角的那个应该是(1,1)
于是我们可以设计一个Data类,专门存储7种图形的位置信息,分别对应前面图的7种模型其中创建的时候,随机从Data类里面7个数据里面取到一个,生成一个图形,根据对应二维数组作为下标来创建小方块。Block也要稍微做些变动需要加入偏移坐标值,来设定4个小方块的相对位置GamePanel类中实例化的就是Model类了,同时绘制的也是我这里设定创建Model的时候x为7,y为3,于是:图形创建好了,怎么去移动这个图形呢很简单就是键盘移动的时候,改成调用Model类的move方法了,此方法里面就是循环模型的4个Block实例,每个小块调用自己的move方法即可:效果如下:旋转万能公式 x=-y y=x 这里的x、y指的是Data类里面二维数组的值,也就是 Block中的偏移值在Block中添加变形方法Model中添加变形方法,就是循环4个Block实例这里加入了预变形方法,就是要先判断能否变形,比如变形会出边界,会碰到别的方块,则不让变形。当图形触底或者接触往下接触到其他方块时,会累计在下面,并且创建新的图形出来。public Block[][] blockStack = new Block[15][20];这个二维数组用来存储累计的方块图形触底后,会根据每个小block实例的位置一一对应插入到blockStack这个二维数组中。在paint方法中加入累积块的绘制1.从当前撞击的模型中取出y坐标(注意去重)。2.将y进行排序,让位置小的排在前面,也就是如果消除两行的话要先消上面的那行。3.消除当前行采用的是数据替换,从当前行开始,上一行的数据往下一行赋值,当前行就等于被消除了。4.积分处理。积分规则:1行100分、2行300分、3行600分、4行1000分显示下一个这个其实不难:1.创建好当前模型的时候,同时创建好下一个模型,并绘制出来;2.当前模型触底累计后,把下一个模型设置为当前模型。3.同时创建一个新模型做为下一个模型。在paint方法中绘制‘下一个’,在右边的下一个区域显示最后加入积分、按键控制、游戏结束、重新开始等就完成了“Java实现俄罗斯方块游戏的代码怎么写”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云主机网站,小编将为大家输出更多高质量的实用文章!
本文小编为大家详细介绍“小程序文字水平居中怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“小程序文字水平居中怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 1:【内联元素】文本居中:text-align:cent…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。