好不容易有個十一長假,終于可以編點自己喜歡的東西了,由于公司主要用的是C#,我也就入鄉(xiāng)隨俗了,拿C#寫了個小游戲練練手,以后有時間再用JAVA重寫一遍。
這只是初版,如果有BUG的話,大家盡量提出來噢,我會盡力改的,不會改的就得請教各位高手咯!
我同時也希望可以幫助像我一樣的初學者能更上一層樓 。
還有一個我不解的問題,希望高手賜教。
當我在Visual Studio 2005里點運行按鈕時,游戲運行會很卡,很占CPU,而且源代碼目錄下會生成一大堆.TMP文件;但是,我直接雙擊DEBUG文件夾下編譯好的.exe文件,游戲運行正常,CPU占用率很低。
誰能告訴我為什么?先謝謝啦!
以下是可執(zhí)行文件及源代碼的下載
MySnake
08.10.05
今天修復了一個BUG,即在定時器每次時間間隔中,可以改變N次蛇的移動方向,只要按的夠快。這樣就產(chǎn)生了一個問題,比如說,蛇正在向右移動,用很快的手速依次按下"↓"鍵和"←"鍵,當按下"↓"鍵時,蛇實際并沒有移動(每次時間間隔只能移動一次),但移動方向已改變?yōu)橄拢@時可以按下"←"鍵的條件為真,按下"←"鍵后在界面顯示蛇還未移動的情況下,就GAME OVER了(即蛇頭撞到了蛇身)。
我在原有基礎上加了個BOOL變量canChangeDirection,來控制在定時器每次時間間隔中,只能改變一次蛇的移動方向,這樣就修復了以上BUG。
以下為1.01版本的可執(zhí)行文件及源代碼的下載
MySnake_v1.01
08.10.12
今天又修改了兩個地方,這都要多虧 給我提的兩個很好的建議。在這里要好好謝謝他!
1.原來蛇身移動的算法效率不高,我的做法是先將移動前的整個蛇身坐標復制一遍,然后再進行移動時的賦值;其實只要復制當前Tile的前一個Tile的坐標即可,詳情請見v1.02版的代碼。
2.在v1.01版中,不支持在每個時間間隔內(nèi)玩家多次的鍵盤輸入,即每個時間間隔內(nèi)只接受玩家的第一次輸入,其實這樣很不人性化,通過 的指點,我在v1.02版中添加了一個保存蛇的移動方向的隊列,存儲用戶的輸入,這樣玩家想按多快都可以了,他按的都會被處理,按照隊列的順序依次改變蛇的移動方向,不過每個時間間隔依然只能改變一次移動方向。
以下為1.02版本的可執(zhí)行文件及源代碼的下載
MySnake_v1.02
08.10.18
what the hell is going on ??!!
