俄罗斯方块源码解析 系列 更新

中秋发的俄罗斯方块系列的文章,说实话本人小菜一个

从来没有想过一篇 文章在一天之内能有千多点击量

以前写滴那些 都过半个月了 顶多几十不得了了

百度上搜了下 连其他网站都给俺转载了。 嘿嘿

真的很感谢博客园管理员给我置顶,真的很感谢大家 ,谢谢大家。

博客园是个人才聚集,自由分享,学习的好地方

最后感谢


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

的回复,最后检查了下代码,这实际上是 俺代码的问题 ⊙﹏⊙∥,

不是.net 效率低不低的问题 ,你说现在机子那么快,.net效率再低 能低到哪里去嘛,

咱要相信Microsoft , 嘿嘿

相信同学们原来注意到这个地方木有:

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

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

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

注意了就是那句 //操作完后进行显示那句,timer 的interval事件里的

意思是 要依靠timer ,也就是必须每隔500毫秒 才能调用display 函数。就是说不论你按得有多快 不会立即在屏幕上表现出来,所以看起来一卡一卡滴

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

所以现在 在“新版本”(呃~~~确实是新版本,咱把它称之为1.1 release版,以前那个是beta版。。。,啊  ̄□ ̄ 别飞板砖过来)interval事件中把display去掉了 ,嘿嘿

直接把panel1的句柄 赋给 game主调程序,

然后在你按下左移 右移 或者 变形操作后 立即 display进行绘制处理,这样就不会出现卡的问题啦 (¯▽¯;)

还有 感谢:

#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   谢谢大家。

原文地址:https://www.cnblogs.com/assassinx/p/1834229.html