日期:2014-05-17  浏览次数:20889 次

写俄罗斯方块的问题
我是把每种方块形式放做一个类;
其中的单元方块 是用Lable 做的 没有text 改变了背景色和width 和 height;
但是不会判断两个方块的碰撞,大家给个方案 怎么判断;
我打算,专门写一个类,把每个下落停止的方块位置放入类的一个链表中,
可能比较麻烦,也担心运行效率;

------解决方案--------------------
判断矩形是否相交,可以调用.net现成的类库程序:http://msdn.microsoft.com/zh-cn/library/y10fyck0.aspx

你的每种方块既然是单元方块的组合,那么判断两个方块是否相交,其是就是判断:两个方块中是否各有一个单元方块正好相交。

“我打算,专门写一个类,把每个下落停止的方块位置放入类的一个链表中”看不懂什么叫做“类的链表”?!我想你应该先搞清楚什么是类,什么是对象,不要混淆。
------解决方案--------------------
这个的思路大概是这样的 首先将游戏的图形显示界面进行划分比如划分成横向10格 竖向20格的格子 那么 对应的就是一个int[20,10]的数组元素值为1说明被占用,每次左右移动图形的时候 首先 判断要移动去的地方值是不是1是1说明之前已经被占用了 不能移动过去 向下的时候判断下一行是不是为1 是移动失败并且更新int[20,10]的数组值 然后复位出新的图形
------解决方案--------------------
俄罗斯方块,似乎有很多地方可以找到线程的源码
http://www.codeproject.com/Articles/27553/Falling-Blocks-Game
这个是讲设计的。
http://www.codeproject.com/Articles/11241/Brick-2005-Game-Engine-formerly-Tetris-2005-Game-E
是一个源码...

参考下改改,当作练习...