ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

我罗斯方块汇报(1)

2020-05-22 20:54:27  阅读:240  来源: 互联网

标签:函数 罗斯 void int 汇报 static bool 方块


这个作业属于哪个课程 面向对象程序设计2020
这个作业的要求在哪里 我罗斯方块
这个作业的目的 我罗斯方块开发进度汇报
作业正文 我罗斯方块
项目地址 我罗斯方块
其他参考文献 Windows程序设计
小组成员 041901328 王真平

开发进展

1.重新设计了类的数据成员和成员函数。分为方块,窗口,玩家,和游戏引擎四个类。
(1)完成了窗口类,并重新设计了游戏界面的样式。如下图:

(2)游戏引擎类主要负责方块的运动,判定,目前实现了方块下落。
(3)实现了玩家类(暂时无功能函数)
(4)方块类,实现了随机产生成方块的功能
2.由于第一次博客完成后开发遇到了极大的阻碍,我决定先做一个单人的测试版,初步实现了我罗斯方块的部分功能,使其能正常下落,移动,变形(不够完善),捋清了设计思路。(此步骤参考了相关视频)

遇到的问题及解决

  当完成第一次博客继续开发时,发现方块下落无法在窗口上实现,且不同类之间相互调用杂乱,接口繁多。在调试过后发现存在如下问题:
  1.在windows编程绘制窗口时,在错误的消息下使用了成员函数,导致无法展示出下落的方块。这个问题在我将将函数放到正确的消息下后可以解决。
  2.做第一次设计时,还没学到静态数据成员和友元函数,以及自己把类定义在错误的位置,导致的问题就是数据被反复的覆盖,没办法进行正常的游戏。

而且没有友元函数,导致我的函数不仅接口繁多,而且在很多功能的实现上无从下手。这也是我重新设计类的数据成员和成员函数的一个重要原因。
在已有程序出现这么多问题后,我决定推到重来,将背景数组和其他数据设置成静态变量,调整了几个类的关系,使功能需要配合使用的类设为了友元类,以简化接口复杂程度和实现功能的便捷性。

开发日记

5月19日
静态数据成员和友元函数像是给我打开了新世界的大门,我突然就相同了怎么把几个类进行联系。于是:

class Player
{

	static int score1;          静态数据成员,就可以让我不必再担心在重复的定义类时让数据被覆盖,丢失!!!
	static int score2;
};
class Windows;                      这个友元类真是雪中送炭!!!我的老大难问题一下就解决了
class Square
{
	
public:
	static int arr_square[2][4];
	static int arr_square2[2][4];
	static int P1_x_square;//方块类型
	static int P1_y_square;//方块横纵坐标
	static int P1_squareId;
	static int P2_x_square;
	static int P2_y_square;
	static int P2_squareId;
public:
	//产生随即块                              ###这两个产生的随机块的函数终于可以更方便的运用,多亏了友元函数!!
	int CreatRandomSquare();
	
	int CreatRandomSquare2();
	
};
class Windows
{
	friend Square;
	//地图背景
	static  int arr_background1[20][10];
	static int arr_background2[20][10];
public:
	//画方框
	void Onpaint(HDC hdc);

5月20日
接下来这几个函数实现就迎刃而解,真是太棒了!

	//初始化
	void OnCreat(Square & x) ;
	
	//显示方块
	void PaintSquare(HDC hmemdc);
	
	//显示变2的方块+变色

变色我暂时还没太想好,不过这个函数可以写出来了

	//void Showsquare_2(HDC hdc);	
	//把随机块贴进背景
	void Copy_Square_Back(Square&x);
	
public:
	//触底方块1变2
	//void Change_1_2();
	//消行函数
	//void DestroyLine();
	//增加行
	//void AddLine();


};
class Engine
{
public:
	//回车开始游戏
	//void Onenter();
	// 向左移
	//void Onleft();
	//向右移
	//void Onright();
	//加速下落
	//void Ondown();
	//变形
	//void Onchange();
	//计时器
	//void Ontimer(HWND hwnd);
public:
	//方块下落
	//void Squaredown();
	//方块右移
	//void Squareright();
	//方块左移
//	void Squareleft();
	//方块变形
	//void Square_change();
	//void SquareL_change();
public:
	//判断是否触底
//	bool Can_Down();
//	bool Can_Down2();
	////判断能否左移
	//bool Can_Left();
	//bool Can_Left2();
	//判断能否右移
	//bool Can_right();
	//bool Can_right2();
	//判断能否变形
	//bool Can_change();
	//bool Can_change_L();
	//判断游戏是否结束
	//bool Can_GameOver();
};

 
 注释掉的函数功能有的还不完善,有的还没实现,为了节约篇幅,实现的具体代码放到GitHub里了。

这个框架经过第一次的大改,应该已经完善了,下面实现功能就会快很多了!

标签:函数,罗斯,void,int,汇报,static,bool,方块
来源: https://www.cnblogs.com/wangmou-233-1024-com/p/12939672.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有