俄罗斯方块源码解析(带下载)[5]
写了几章了 ,该完了吧。
是骡子是马拉出来溜溜 ,好歹得给点东西大家瞧瞧啊,光说不练假把式。
最后在我们的form1窗体里 拖一个panel控件(俺就是喜欢拖控件,以呀咿呀哦),再放个lable用来显示分数
拖成这样:
然后再放个timmer控件 设置interval为500毫秒,设置enable=true
编写interval 事件:
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(); }
窗体载入时:
public game gm;//主程序 private void Form1_Load(object sender, EventArgs e) { //在窗体载入时 开始游戏 gm = new game(); gm.start(); }
编写窗体的OnkeyDown事件(注意窗体上不要拖其他多余控件 要不然keydown无法响应):
加速下落纯粹只是一个 假象 (设置interval阀值 更小而已,别忘了在onkeyUp的时候恢复)
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的话 拷到低版本的环境编译一下 即可,
可能 大概 也许 要小改一下代码⊙﹏⊙∥ 。
这是本人在博客园上发表过的最长的文章,也许以后还有更长滴 ,更好的奉献给大家。
好了 《全文完》
最后祝大家 中秋快乐, 俺写这些也不容易 挺累的 连源码都给大家了,如果你感觉还将就的话 给留个评论吧 好让我知道。