俄罗斯方块
演示:通过键盘快捷键或鼠标点击
matrix屏幕和二维数组映射关系
7种方块blocks、当前方块currB、下一方块nextB、运动位置xy
状态: 就绪ready、下落fall、结束over、暂停paused
得分规则:
难度级别越高移动速度越快,下落和消除的得分也越高
下落得分:1 * 级别
消除得分:Math.pow(2, 消除行数) * 级别 * 10
电子表
onResize
localStorage获取与存储
matrix,array(20, array(10))
保存/复原 visibilitychange
按钮与keyCode映射,预先选择好元素
事件,onKeyDown/Up,onMouseDown/Up,onTouchStart/End
就绪状态下设置初始行数和难度级别,恐龙动画,最高分与上轮得分交替显示
音效,$audio.open(),$audio.start()
暂停,图标闪烁
播放音乐
在底部给每个起初行填充后随机挖空若干
随机挑选一个方块作为下一方块
把下一方块设为当前方块置于顶部中间位置
开始下落,Y轴加一,移动速度,循环
碰撞检查,some()嵌套检查Y轴X轴
碰撞颜色高亮动画,加分
检查哪些行(不包含0的行)可以消除
播放消除行声音及颜色高亮动画
添加得分
累计已消除行数
左右移动,边界检查
旋转,先临时行列对调、摆正位置,碰撞检查OK后再实施
速降,按住循环执行,每步渲染
掉落,循环执行直到碰撞或触底,无渲染(事件完成后平台自动渲染)
下落、下移和掉落通过$v.fall和$l.fall来排他执行
重玩,计算最高分,清屏动画