zoukankan      html  css  js  c++  java
  • 俄罗斯方块源码解析(带下载)[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的话 拷到低版本的环境编译一下 即可,

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

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

    好了 《全文完》

    完整项目源码下载链接

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

  • 相关阅读:
    为什么要用where 1=1?
    idea中.ignore忽略提交文件到Git的使用
    IDEA开发工具使用 git 创建项目、拉取分支、合并分支
    Linux常用命令及Linux系统根目录下各个目录的作用
    Xshell和Xftp的安装与使用教程
    Moco使用简单指导
    这样写会有什么问题呢?
    grunt学习笔记
    基于nginx的WebSocket反向代理
    maven依赖查找方法
  • 原文地址:https://www.cnblogs.com/assassinx/p/1833687.html
Copyright © 2011-2022 走看看