俄罗斯方块源码解析(带下载)[5]

写了几章了 ,该完了吧。

是骡子是马拉出来溜溜 ,好歹得给点东西大家瞧瞧啊,光说不练假把式。

最后在我们的form1窗体里 拖一个panel控件(俺就是喜欢拖控件,以呀咿呀哦),再放个lable用来显示分数

拖成这样:

 

然后再放个timmer控件 设置interval为500毫秒,设置enable=true

编写interval 事件:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void timer1_Tick(object sender, EventArgs e)
       {
           if (gm.isOver)
           {
               timer1.Enabled = false;
               MessageBox.Show("gameOver");
               return;
           }
 
           //one step
           gm.go();//对游戏逻辑 进行“下移” 操作(具体的下移到什么地方 比如到底了又如何 这些逻辑统统是在game类里面进行判断 操作)
 
           gm.display(panel1.Handle);//操作完成后进行显示
 
           score.Text = gm.score.ToString();
       }

 

窗体载入时:

 

1
2
3
4
5
6
7
public game gm;//主程序
        private void Form1_Load(object sender, EventArgs e)
        {
            //在窗体载入时 开始游戏
            gm = new game();
            gm.start();
        }     

 

 

编写窗体的OnkeyDown事件(注意窗体上不要拖其他多余控件 要不然keydown无法响应):

加速下落纯粹只是一个 假象 (设置interval阀值 更小而已,别忘了在onkeyUp的时候恢复)

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void Form1_KeyDown(object sender, KeyEventArgs e)
       {
           switch (e.KeyCode)
           {
               case Keys.Up://旋转
                   gm.Pivot();
                   //gm.left();
                   break;
               case Keys.Left:
                   gm.left();
                   break;
               case Keys.Right:
                   gm.right();
                   break;
               case Keys.Down:
                   timer1.Interval = 30;
                   break;
               case Keys.Space:                           //空格:暂停
                   timer1.Enabled = !timer1.Enabled;
                   break;
           }
       }

 

 

 

自己写的俄罗斯方块,玩起来感觉就是不一样 嘿嘿 (¯▽¯;)

俺亲自来操作一把

什么报错了 ⊙﹏⊙∥

调这个程序从开始写 到调通可是费了俺好大劲 ,俺菜嘛 。

 

最后提醒一下 本程序是基于 微软最先进滴.net 3.5 。没有的话自行搞定,有源码 没有.net 3.5的话 拷到低版本的环境编译一下 即可,

可能 大概 也许 要小改一下代码⊙﹏⊙∥ 。

这是本人在博客园上发表过的最长的文章,也许以后还有更长滴 ,更好的奉献给大家。

好了 《全文完》

完整项目源码下载链接

最后祝大家 中秋快乐, 俺写这些也不容易 挺累的 连源码都给大家了,如果你感觉还将就的话 给留个评论吧 好让我知道。

posted @   assassinx  阅读(3347)  评论(13编辑  收藏  举报
点击右上角即可分享
微信分享提示