散分,一个关于“俄罗斯方块”的问题!

skinny 2003-10-16 08:06:00
我是一个初学者,这几天在用win32 +DX做一个“俄罗斯方块”,主要是为了学习,有几个问题问问大家。
我做的“俄罗斯方块”是用一个struct数组Boxs来表示屏幕上的方块,Boxs定义为:
struct Box
{
bool exist;//方块是否存在
bool runing;//方块是否还能活动
}
Box boxs[10][20];
我现在遇到几个问题:
1.方块生成问题,一共是7种方块,除正方形外,每种有4个状态,也就是变形时的4个状态,如何随机生成不同种类不同状态的方块,当然可以一种一种全写出来,可是总觉得太麻烦....
2.方块的变形,刚刚说过,7种方块每种4个状态,如何让方块可以在4种状态中顺序变换?

那位大虾有好的解决方案!请赐教
...全文
81 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
skinny 2003-10-17
  • 打赏
  • 举报
回复
谢谢DarthVader(研究DirectShow中) && noremorse()
DarthVader 2003-10-17
  • 打赏
  • 举报
回复
不好意思 上面回答的主要是你的第二个问题
随机生成的问题
先随机生成一种形状 再随机生成这种形状的一种旋转形态
(当然只生成形状就可以了,不到最后关头,形状一出来是怎么摆的
玩家并不会太关心——因为同一种形状总可以变到同一个旋转状态的嘛)
DarthVader 2003-10-17
  • 打赏
  • 举报
回复
楼主你好 我的看法是:即使全写出来也不烦的
因为这样子在变换的时候就简单了
对于一种形体 其各种形态的矩阵存放在一个数组phase_list[...]中
设其形态数为n_phaseCount 当前形态序号为n_currPhase
那么你的第三个问题就很好解决了
只用加一取模就很容易的实现了顺序变化
n_currPhase = phase_list[ (n_currPhase + 1) % n_phaseCount];
我的程序就是这么作的 并不觉得很复杂
当然你的思路也是可以的 但是游戏程序员偏向于事先计算的技术(比如查找表等)
因为所有变化形态事实上都是定好的 重复计算心里总归不爽了
noremorse 2003-10-16
  • 打赏
  • 举报
回复
一般的方法

http://expert.csdn.net/Expert/topic/2338/2338012.xml?temp=.5485803

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧