本來想寫幾句的,但是看到前面一篇的反映不是很理想,所以也沒動力了,原計劃下面還想寫個“貪吃蛇”的,看看再說吧,直接上源代碼。
這一次在上一篇程序的基礎上增加了以下功能:
1、鍵盤控制
2、開始、暫停
3、消除時候空行的停頓效果
4、隨著消除行數的增多,速度加快
5、音效
等等。
代碼里的注釋已經很詳細了,上一篇中模型的代碼基本上沒改動,只是增加了控制和圖形的代碼,自己感覺寫的還是比較有條理的。
代碼下載:點擊
|
|
|
提示:本文中的俄羅斯方塊游戲需要 Chrome 瀏覽器才能得到最好的運行效果,Firefox 瀏覽器也可以運行,但是沒有聲音效果。
{{{{{{
}}}}}}
后面羅嗦兩句,愿意看的就看看。
這一部分代碼主要由兩個定時器組成。
第一個定時器每間隔一段時間就產生一個 TickMessage 消息,對這個消息的處理就是使方塊下落,下落后每消去一次,觸發的速度就更快一點。
第二個定時器是消息循環,他盡可能快的循環,所以時間間隔設置為0。
因為整個游戲的模型部分和控制部分會產生很多的事件,誰也不知道用戶什么時候按下按鍵,所以這里維護了一個消息隊列。
一旦有新的情況產生,就在消息隊列里面添加上一條對應的消息,而消息循環不停的從里面取出消息,只要有就取出一條,并處理它。
圖形部分,重點是要把七種顏色的小方塊事先繪制好,并緩存起來,后面需要的時候直接使用。否則臨時繪制的話,隨著方塊的增多,程序會出現卡死現象。
好了,就說這么多吧,有什么問題請留言。
//==========================================
posted on 2010-10-18 18:31
左洸 閱讀(3002)
評論(9) 編輯 收藏 所屬分類:
HTML5