好不容易有个十一长假,终于可以编点自己喜欢的东西了,由于公司主要用的是C#,我也就入乡随俗了,拿C#写了个小游戏练练手,以后有时间再用JAVA重写一遍。

        这只是初版,如果有BUG的话,大家尽量提出来噢,我会尽力改的,不会改的就得请教各位高手咯!
我同时也希望可以帮助像我一样的初学者能更上一层楼 。

        还有一个我不解的问题,希望高手赐教。

        当我在Visual Studio 2005里点运行按钮时,游戏运行会很卡,很占CPU,而且源代码目录下会生成一大堆.TMP文件;但是,我直接双击DEBUG文件夹下编译好的.exe文件,游戏运行正常,CPU占用率很低

        谁能告诉我为什么?先谢谢啦!

        以下是可执行文件及源代码的下载
        MySnake
                                                                                                                                                                               08.10.05


        今天修复了一个BUG,即在定时器每次时间间隔中,可以改变N次蛇的移动方向,只要按的够快。这样就产生了一个问题,比如说,蛇正在向右移动,用很快的手速依次按下"↓"键和"←"键,当按下"↓"键时,蛇实际并没有移动(每次时间间隔只能移动一次),但移动方向已改变为下,这时可以按下"←"键的条件为真,按下"←"键后在界面显示蛇还未移动的情况下,就GAME OVER了(即蛇头撞到了蛇身)。


        我在原有基础上加了个BOOL变量canChangeDirection,来控制在定时器每次时间间隔中,只能改变一次蛇的移动方向,这样就修复了以上BUG。

        以下为1.01版本的可执行文件及源代码的下载
        MySnake_v1.01

                                                                                                                                                                                08.10.12
 
      今天又修改了两个地方,这都要多亏raof01 给我提的两个很好的建议。在这里要好好谢谢他!

      1.原来蛇身移动的算法效率不高,我的做法是先将移动前的整个蛇身坐标复制一遍,然后再进行移动时的赋值;其实只要复制当前Tile的前一个Tile的坐标即可,详情请见v1.02版的代码。

      2.在v1.01版中,不支持在每个时间间隔内玩家多次的键盘输入,即每个时间间隔内只接受玩家的第一次输入,其实这样很不人性化,通过raof01 的指点,我在v1.02版中添加了一个保存蛇的移动方向的队列,存储用户的输入,这样玩家想按多快都可以了,他按的都会被处理,按照队列的顺序依次改变蛇的移动方向,不过每个时间间隔依然只能改变一次移动方向。

      以下为1.02版本的可执行文件及源代码的下载
      MySnake_v1.02
                                                                                                                                                                                08.10.18


what the hell is going on ??!!