首页 精选百科 > 正文

c语言编写俄罗斯方块的设计目的(c语言编写俄罗斯方块)

导读 这里把游戏的关键设计放在三个盒子和一个坐标上: 大盒子:一个两维数组,记录着方块点阵的开与关(把游戏的舞台想像 成一个点阵),在...

这里把游戏的关键设计放在三个盒子和一个坐标上: 大盒子:一个两维数组,记录着方块点阵的开与关(把游戏的舞台想像 成一个点阵),在下面也把这个东西称为地图 两个5*5小盒子:两维数组,一个盛放着正在下落的方块,一个盛放在 下一个下落的方块(即next),当然这两个也必须想像成一个点阵:如长条 的点阵为: 00000 00100 00100 00100 00100 现在你只要有这么一个概念:一个不断定时下落的小盒子从大盒子顶 部下降到底部,之后再将next盒子放在下落盒子,再进行下一轮的下落... 中间的控制等尚不要太着急. 现在面临着一个问题: 下落的盒子和地图之间要怎么联系起来? 一个好的方法是再定义一个坐标:x,y,保存着小盒子左上角在地图上对应 的下标(位置),即当x = 0, y = 0时,小盒子处于地图的左上部.如此,当 小盒子需要移动时,即只须要改变x,y的值. 现在说说旋转. 小盒子保存着当前下落形状的点阵,那么旋转就只须要将这个点阵旋 转90度:例如: 00000 00000 00100 00000 00100 -> 01111 00100 00000 00100 00000 这一点实现起来还是不太难的. 判断碰撞 通常这种情况只须要在有移动小盒或旋转盒子时发生:也即点阵非空 是互斥的,当小盒要向下移(x++)时,如果小盒里的点阵与地图上的点阵(非 空的地方)重叠,则不能下移,(卡住了),旋转则转换后的形状与地图有冲 突则要放弃旋转. 到了这里,你应该有一个大概的了解了,至于怎样在屏幕上画出来,这 个是比较简单的,下面的代码会慢慢与你解释. */ /*接下一贴*。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。