悄然无声的 Blog
不是我不明白,这世界变化快!

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

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

1、键盘控制

2、开始、暂停

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

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

5、音效

等等。

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

代码下载:点击

 

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

 

{{{{{{

你的浏览器不支持 Canvas 标签,请使用 Chrome 浏览器 或者 FireFox 浏览器

}}}}}}

 

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

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

 

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

 

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

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

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

 

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

 

好了,就说这么多吧,有什么问题请留言。

 


//==========================================

posted on 2010-10-18 18:19  左洸  阅读(3563)  评论(13编辑  收藏  举报