耽搁一个panel控件(俺就是爱好拖控件。从来没有感念过同样篇 文章以同天之内能生出本大多触及击量。

写了几乎章了 ,该结束了吧。

中秋发的俄罗斯四方系列的篇章,说实话我小菜一个

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

素有没想过相同首 文章于同等天内会生出主几近沾击量

末段当咱们的form1窗体里
拖一个panel控件(俺就是爱拖控件,以呀咿呀哦),再放开个lable用来展示分数

以前写滴那些 都过半只月了 顶多几十挺了

拖成这样:

百度上搜了下 连其他网站还于人家转载了。 嘿嘿

图片 1

确好谢谢博客园管理员让我置顶,真的坏感谢大家 ,谢谢大家。

 

 

下一场再度放开个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();
        }

#5楼  回复 引用 查看  
2010-09-24 08:56 by toEverybody     
科学, 就是运行控制的上有点慢
还是用C++或Delphi快

 

 

窗体载入时:

的东山再起,最后检查了下代码,这实质上是 俺代码的题目 ⊙﹏⊙∥,

 

匪是.net 效率低不逊色之题目 ,你说现在电话那么快,.net效率还低
能小及哪里去呗,

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

咱要相信Microsoft , 嘿嘿

 

 

 

深信不疑同学等原来注意到是地方木有:

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

 

增速下降纯粹只是一个 假象 (设置interval阀值
更有些若现已,别忘了当onkeyUp的时恢复)

//one step
            gm.go();//对游戏逻辑 进行“下移” 操作(具体的下移到什么地方 比如到底了又如何 这些逻辑统统是在game类里面进行判断 操作)

            gm.display(panel1.Handle);//操作完成后进行显示

            score.Text = gm.score.ToString();

 

 

 

 

 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;
            }
        }

只顾了就算是那么句 //操作完后进行展示那句,timer 的interval事件里之

 

意是 要依靠timer ,也便是要每隔500毫秒 才会调用display
函数。就是说无论是你以得有多快
不会见及时以屏幕及呈现出,所以看起一卡一卡滴

 

貌似是由于.net效率低下造成的。

 

 

祥和写的俄罗斯方块,玩起来感到就是是不等同 嘿嘿 (¯▽¯;)

之所以现在 在“新本子”(呃~~~确实是初本子,咱管她叫1.1
release版,以前挺是beta版。。。,啊  ̄□ ̄
别飞板砖过来)interval事件备受管display去丢了 ,嘿嘿

人家亲自来操作一将

直将panel1的语句柄 赋给 game主调程序,

图片 2

接下来于您本下错移 右移 或者 变形操作后 立即
display进行绘图处理,这样就是不见面出现卡的题目啦 (¯▽¯;)

好家伙报错了 ⊙﹏⊙∥

 

调动是序于开头勾画 到调通可是费了人家好特别劲 ,俺菜嘛 。

还有 感谢:

 

 

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

#6楼  回复 引用 查看  
2010-09-24 12:24 by funskiller     
有BUG,在下跌的下,假如是左右在了有方块的地方,那下落的四方直接插了进去…..而非是判定有东西。

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

 

随即是自个儿以博客园上刊了之极致丰富的文章,也许下还有更丰富滴
,更好之贡献受大家。

的回复

好了 《全文完》

有关“插入”滴问题,不思说了 (咋讲起感到怪怪的捏, 贫僧又心生邪念
回去好好检查 ,哦弥陀佛。。。。。)

完整项目源码下充斥链接

斯bug大家可以将她看作一个技来行使 ˇ▽ˇ

最终祝愿大家 中秋快乐, 俺写这些呢非易于 挺累的
连源码都深受大家了,如果您发还以就的语 给留个评价吧 好于自家晓得。

倘想缓解这bug也不是什么难事,大家去研究研讨代码就OK啦,都出注释的。

 

还有即使是在变形的一瞬
方块是“无敌”的,也便是得“穿外露”,变形完成以后以见面进行 “下落操作”

此时程序才发现 原来已“不克退”了。于是乎方块即”嵌到墙壁里去矣“,
也就是说这个和方”插入“滴问题 是一个法则

良有趣啊(¯▽¯;) 
大家以游玩的历程中可管其看作一个技来采取,这可fc游戏机上从未有过底成效哦,嘿嘿

 

还有已拿余第四章杀申请专利了的“旋图”滴算法
改良了  ,

以中心也基准点进行盘

现行大家娱乐的进程中 想咋旋 咋旋,想咋车 咋车 ,想咋转
咋转。。。。。(莫打自己哈 ^_^)

 

再有就是是 shape类里面 方块 的种类 是足以调整的(那个switch语句),

gameArea 类里面 width 跟height 也是可以调动的,调了后“容器”的横向格子数
跟纵向格子数会转换死(建议不用少初始值 要无闹或会见报错),

理所当然别忘了还要将panel1对应的幅度 高度 设成  格子数X30诸如从

论调看  重新编译 是无是未雷同了^_^

 

还有 操作方式是 上下左右 加 空格,大家不见面不知晓吧 , ⊙﹏⊙∥

再有余就将程序更新了,大家可重下来玩玩 ,有穿墙功能 又未卡 ,嘿嘿
好玩s了

 

整体项目源码下充斥链接

 

还有。。。。。。

木有了

 

最后还要谢:

#1楼  回复 引用 查看  
2010-09-24 07:05 by Alan.Zhu     
呵呵,先支持一个:D
学习ing

 

反之亦然的支撑

 

同任何童鞋提出的宝贵意见,

Thanx   谢谢大家。

相关文章