目的
为熟悉es6增加趣味性
提高开发动力
balabalabala....编不下去了
注意
俄罗斯方块用es6写,无经过babel转es5,示例请用支持es6的chrome
俄罗斯方块用es6写,无经过babel转es5,示例请用支持es6的chrome.
俄罗斯方块用es6写,无经过babel转es5,示例请用支持es6的chrome.
实现
第零步:构思俄罗斯方块
的形状&规则
形状
每个方块
都可看作一个二维数组,需要填充的部分为1,留空为0.
-
规则
上方向键 ===> 方块顺时针形变
左方向键 ===> 方块向左移动
右方向键 ===> 方块向右移动
空格键 ===> 方块加速下落
方块掉落自动掉落
方块集齐满一排消除
方块到顶部视为失败
第一步:让方块出现&动起来
在`document.body`添加一个方块,并绑定`document.onkeydown`,让方块跟随键盘方向键动起来.
第二步:让方块在规定画布上动起来
在`document.body`添加一个画布,每次方块运动前判断对应方向能否移动
第三步:根据数组矩阵画出俄罗斯方块
根据数组矩阵判断值为1的下标,利用得到的下标对各个小方块进行定位,从而得出一整块
俄罗斯方块
.判断能否移动则根据绘制出的
俄罗斯方块
取最值,根据最值比对边界即可.
第四步:俄罗斯方块
形变
利用变量记录
俄罗斯方块
当前位置数组矩阵顺时针旋转后返回数组矩阵&每个方块的偏移量
利用矩阵判断
俄罗斯方块
能移动的边界
第五步:俄罗斯方块
自由下落
利用setTimeout方法指定一定时间下方块下落20px
每次下落期间判断当前
方块
可移动边界当前
方块
不可再位移时,方块
变灰,新的方块
出现
第六步:俄罗斯方块
消除
每次
俄罗斯方块
下落结束时,判断每一行小方块个数方块
个数等于画布宽度/方块
,则取出该行方块
集合并从document.body
消除消除后将高度高于该消除行的
方块
掉落一个方块
高度
第七步:加速下落
让
方块
在按空格键的时候,下落2个单位的BLOCK_SIZE,也就是40px需要在
canMove
函数中添加displacement
(位移)参数标识方块
下落的位移量判断
方块
是否到达最高位置,需要加上位移量的距离
第八步:判断游戏GG
第九步:增加随机下落方块
第十步:增加游戏信息
增加计分板
增加等级判断
增加下一个方块提示
增加操作提示
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。