1. mfc俄罗斯方块中的记分功能是怎么实现的
基本上就是学习一下windows是怎么画图的,也就是gdi编程,然后我推荐一本书给你,相信你会很有收获。《VisualC++经典游戏程序设计》经典的游戏里边基本都有。
2. c++的mfc俄罗斯方块教程,谁有帮个忙发下 [email protected] 谢了
C++ QT的要吗?
3. MFC 怎么实现 俄罗斯方块
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. 用MFC做俄罗斯方块要用哪些函数(急)
看到楼主对“自由之城”的追问,我还是忍不住想骂你两句。
开发程序不是会几个函数就行了,基础要打牢。这就好比那个经典的预言故事: 空中楼阁 。
没有第一层,你想想第二层能盖的住吗?
学MFC,建议你先啃熟《windows程序设计》吧。
切记,万万不可眼高手低。这不是分的问题,这是你将后来人生的问题。
5. MFC C++ 双人版俄罗斯方块 思路
1先写单机版
2图形界面上增加另一个俄罗斯方块界面和分数
3两者互发信息,可以采用writeObject的方式,将对方方块的位置send对方
6. 求一个MFC,C++基于对话框的俄罗斯方块教程
我有MFC的俄罗斯方块程序
7. C++用mfc编写俄罗斯方块 本人没有MFC的基础,请说明详细的操作步骤和源代码
请参考这里
http://bbs.csdn.net/topics/380209124
8. 如何用MFC写俄罗斯方块程序
建议你去这里看看,很详细http://student.csdn.net/space.php?uid=110891&do=blog&id=10323
黏贴代码如下:
const int BLOCK_LINE = 20;//当前地图的行数
const int BLOCK_ROW = 10;//当前地图的列数
class CBlock
{
public:
CBlock(void);
~CBlock(void);
private:
// 当前方块形状
int m_BlockShape;
//下一个方块形状
int m_nextBlockShape;
//当前方块状态
int m_BlockState;
//等级
int m_BlockLevel;
//当前可消行数
int m_BlockCurDelLine;
//游戏是否在执行
bool m_blockRunning;
//当前方块位置
POINT m_BlockPos[4];
//下个方块位置
POINT m_nextBlockPos[4];
//当前的屏幕状态
//BLOCK_LINE是行数,BLOCK_ROW是列数
int m_Blockmap[BLOCK_LINE][BLOCK_ROW];
public:
// 初始化游戏
void BlockInit( void );
private:
// 记录方块图形
CBitmap m_bmpBlock[7];
public:
//创建一个新的方块出来,这里只给方块形状赋值
void CreateNewBlock(void);
private:
//这里给方块位置赋值,
//shape是形状, pt[]是用来接收方块坐标的(方块形状的排列坐标)数组
//xPos是偏移量,就是方块显示位置和方块显示的框的最左边的差
void MakeNewBlock(int shape, POINT pt[], int xPos);
public:
//将方块画在对应的DC上
void DrawBlock(CDC* pDC);
//方块的下落过程,主要部分
void BlockDropDown(CDC* pDC);
private:
// 隐藏方块
void HideBlock(CDC* pDC);
// 背景图片变量
CBitmap m_bmpBKGND;
public:
// 画下个方块的框框
void DrawNextBlock( CDC* pDC );
//方块左移
void BlockLeft(CDC* pDC);
//方块右移
void BlockRight(CDC* pDC);
//方块下移
void BlockFastDown(CDC* pDC);
//方块变形
void ChangeState(CDC* pDC);
// 消除一行
//pDC是传入的DC
//LineNum是消除的行从第几行开始(我这里是最上面为0,最下面为19)
//start是 游戏是否是要把消除行以上的都置0,我是用在OnDraw()里,用来重画屏幕的,
void DeleteLine(CDC* pDC, int LineNum, bool start);
// 游戏是否结束,true=结束了
bool BlockGameOver(void);
// 计分板
//del是决定是否是已消一行的
void BlockScore(int del, CDC* pDC);
//返回是否升级了,true=升级了
bool BlockLevelUp(void);
//返回下落速度
int BlockSpeed(void);
};
csdn可以下载到这个代码,你要的话可以发邮件给我,我的邮箱[email protected]
9. 用基础MFC和C++能做出俄罗斯方块吗
当然可以,碰撞,旋转之类的自己处理比较麻烦。但做出来还是没有问题。
。。。。。。不让我发啊。。。。。木有办法了。。。发了N次了。
1.定义小方块类。需要有大小,中心,颜色等属性。能够在自己范围内绘制,清空。
2.定义方块类,包含4个小方块。每个方块中心根据形状不一样。带旋转函数。调整小方块中心。
3.定义方块链表,保存方块类指针。
4.根据键盘输入消息,调整当前方块对象中小方块中心。根据小方块中心和其他小方块中心,游戏区域坐标限制关系,判定移动,停止移动。
5.停止移动,随机生成新的方块类对象。(其实是小方块中心赋值不一样)。检测所在行是否满行,满行则消除。满行检测查询链表中所有对象小方块的位置。
6.满行消除通过控制对应小方块清除,移动实现。
7.4个小方块都不显示的方块对象从链表中删除。
10. C编写俄罗斯方块要涉及到哪些c语言知识(最起码需要了解的)
首先看你要用什么工具了,如果只是单纯的学了C,那么可以尝试用win-tc去坐下,只需要了解一些画图函数就OK了,至于如何进入图形模式,win-tc提供有模板,我用win-tc写俄罗斯方块,核心代码也就300行左右,如果你想做的更加漂亮的话,可以尝试MFC,首先你要了解windows编程的基本思想“消息”。其次,需要对C++有一定的了解。。如果是初学,就先考虑下用C在win-tc下画图,做游戏吧~~~