1个回答
2013-05-31
展开全部
1、 游戏实现
俄罗斯方块,或称积木游戏,它是利用一些形状各异却又是用正方形组成的方块,经过不同位置销扒不同角度的变化之后,堆积在一起的一种智力游戏。而从我们编程的角度讲,我们只需要提供各种方块的图形,提供几个键盘操作键以供方块的形状和位置的变化,提供几个功能函数以供游戏的正常进行。各种方块图形:利用数组定形,然后利用随机函数随机地不按顺序地按游戏的需要而出现。键盘操作键:就是四个方向键。其中左、右、下三个键意思一样,上键的功能不是使方块向上,而是使方块的下落角度改变。功能函数将在变量函数里面介绍。
新建单文档工程4_1。
2、 资源编辑
添加位图: 封面: IDB_BITMAP1背景: IDB_BITMAP2方块: IDB_BITMAP4
添加菜单: 开始: ID_MENU_START
3、 变量带斗升函数
接着就是定义变量了,但是,由于这个游戏要添加的变量和函数太多了,我们要建一个新类。是否应该先添加应该类呢?最好是这样。因为新类将会涉及到变量。添加普通类Crussia; 由于两个类一共有很多变量函数,列举如下:
// 4_1View.h :
//俄罗斯类 CRussia russia; //开始标志bool start; //封面 CBitmap fenmian; //暂停BOOL m_bPause;
//开始菜单 afx_msg void OnMenuStart(); //计时器 afx_msg void OnTimer(UINT nIDEvent); //键盘操作 afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
// Russia.h:
//游戏数组int Russia[100][100]; // 当前图蠢老形 int Now[4][4]; //上一图形 int Will[4][4]; //变换后的图形 int After[4][4]; //当前图形的左上角位置 CPoint NowPosition; //当前可能出现的图形形状数, int Count; //游戏结束 bool end; //级别 int m_Level; //速度 int m_Speed; //分数 int m_Score; //行列数 int m_RowCount,m_ColCount;//方块 CBitmap fangkuai;//背景 CBitmap jiemian;
//显示分数等内容 void DrawScore(CDC*pDC); //消行 void LineDelete(); //方块移动 void Move(int direction); //方块变化,即方向键上键操作 bool Change(int a[][4],CPoint p,int b[][100]); //是否与原来方块接触,或与边界接触 bool Meet(int a[][4],int direction,CPoint p); //显示下一个方块 void DrawWill(); //显示界面 void DrawJiemian(CDC*pDC); //开始 void Start(); 然后把每个方法按功能补全就可以了 如果要详细一点的资料你可以参考下这个帖子http://www.vcbook.cn/dispbbs.asp?boardid=16&id=11
俄罗斯方块,或称积木游戏,它是利用一些形状各异却又是用正方形组成的方块,经过不同位置销扒不同角度的变化之后,堆积在一起的一种智力游戏。而从我们编程的角度讲,我们只需要提供各种方块的图形,提供几个键盘操作键以供方块的形状和位置的变化,提供几个功能函数以供游戏的正常进行。各种方块图形:利用数组定形,然后利用随机函数随机地不按顺序地按游戏的需要而出现。键盘操作键:就是四个方向键。其中左、右、下三个键意思一样,上键的功能不是使方块向上,而是使方块的下落角度改变。功能函数将在变量函数里面介绍。
新建单文档工程4_1。
2、 资源编辑
添加位图: 封面: IDB_BITMAP1背景: IDB_BITMAP2方块: IDB_BITMAP4
添加菜单: 开始: ID_MENU_START
3、 变量带斗升函数
接着就是定义变量了,但是,由于这个游戏要添加的变量和函数太多了,我们要建一个新类。是否应该先添加应该类呢?最好是这样。因为新类将会涉及到变量。添加普通类Crussia; 由于两个类一共有很多变量函数,列举如下:
// 4_1View.h :
//俄罗斯类 CRussia russia; //开始标志bool start; //封面 CBitmap fenmian; //暂停BOOL m_bPause;
//开始菜单 afx_msg void OnMenuStart(); //计时器 afx_msg void OnTimer(UINT nIDEvent); //键盘操作 afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
// Russia.h:
//游戏数组int Russia[100][100]; // 当前图蠢老形 int Now[4][4]; //上一图形 int Will[4][4]; //变换后的图形 int After[4][4]; //当前图形的左上角位置 CPoint NowPosition; //当前可能出现的图形形状数, int Count; //游戏结束 bool end; //级别 int m_Level; //速度 int m_Speed; //分数 int m_Score; //行列数 int m_RowCount,m_ColCount;//方块 CBitmap fangkuai;//背景 CBitmap jiemian;
//显示分数等内容 void DrawScore(CDC*pDC); //消行 void LineDelete(); //方块移动 void Move(int direction); //方块变化,即方向键上键操作 bool Change(int a[][4],CPoint p,int b[][100]); //是否与原来方块接触,或与边界接触 bool Meet(int a[][4],int direction,CPoint p); //显示下一个方块 void DrawWill(); //显示界面 void DrawJiemian(CDC*pDC); //开始 void Start(); 然后把每个方法按功能补全就可以了 如果要详细一点的资料你可以参考下这个帖子http://www.vcbook.cn/dispbbs.asp?boardid=16&id=11
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询