PHP前端开发

HTML5边玩边学(十)-俄罗斯方块之控制界面篇(源码)

百变鹏仔 2个月前 (10-18) #H5教程
文章标签 俄罗斯方块

本来想写几句的,但是看到前面一篇的反映不是很理想,所以也没动力了,原计划下面还想写个“贪吃蛇”的,看看再说吧,直接上源代码。

这一次在上一篇程序的基础上增加了以下功能:

1、键盘控制

2、开始、暂停

3、消除时候空行的停顿效果

立即学习“前端免费学习笔记(深入)”;

4、随着消除行数的增多,速度加快

5、音效

等等。

代码里的注释已经很详细了,上一篇中模型的代码基本上没改动,只是增加了控制和图形的代码,自己感觉写的还是比较有条理的。

提示:本文中的俄罗斯方块游戏需要 Chrome 浏览器才能得到最好的运行效果,Firefox 浏览器也可以运行,但是没有声音效果。

 

后面罗嗦两句,愿意看的就看看。

这一部分代码主要由两个定时器组成。

第一个定时器每间隔一段时间就产生一个 TickMessage 消息,对这个消息的处理就是使方块下落,下落后每消去一次,触发的速度就更快一点。

第二个定时器是消息循环,他尽可能快的循环,所以时间间隔设置为0。

因为整个游戏的模型部分和控制部分会产生很多的事件,谁也不知道用户什么时候按下按键,所以这里维护了一个消息队列。

一旦有新的情况产生,就在消息队列里面添加上一条对应的消息,而消息循环不停的从里面取出消息,只要有就取出一条,并处理它。

图形部分,重点是要把七种颜色的小方块事先绘制好,并缓存起来,后面需要的时候直接使用。否则临时绘制的话,随着方块的增多,程序会出现卡死现象。