⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ball.cpp

📁 这是一个迷宫游戏的原代码
💻 CPP
字号:
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
//  嗨!我是王晓钰。
//  我的E-mail是:XiaoYu.wang@263.net  有问题可以发邮件或在网站上留言
//  欢迎你访问我的个人主页:“笑语小园”http://xiaoyu.2699.comn
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
//  二○○○年七月
//  让我们继续看我的程序。
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|

#include <afxwin.h>
//#include "resource.h"
// 框架窗口类
class CMyWnd: public CFrameWnd
{
	CRect m_rectBody;
public:
	CMyWnd()
	{
		srand((unsigned)time(NULL));
		m_nX = 10;
		m_nY = 10;
		m_nWidth = 22;
		m_nHeight = 22;
		for(int i=0; i<20; i++)
			for(int j=0; j<20; j++)
			{
				m_nMaze[i][j] = rand()%2;
				if(m_nMaze[i][j])m_nMaze[i][j]=rand()%2;
			}
		for(i=0; i<20; i++)
		{
			m_nMaze[ 0][ i] = 1;
			m_nMaze[19][ i] = 1;
			m_nMaze[ i][ 0] = 1;
			m_nMaze[ i][19] = 1;
		}
		m_nMaze[18][18]=0;
	}
protected:
	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); 
	afx_msg void OnPaint();
	DECLARE_MESSAGE_MAP()
private:
	int m_nHeight;
	int m_nWidth;
	int m_nMaze[20][20];
	int m_nY;
	int m_nX;
};
// 消息映射
BEGIN_MESSAGE_MAP(CMyWnd, CFrameWnd)
ON_WM_KEYDOWN() 
ON_WM_PAINT()
END_MESSAGE_MAP()
// 框架窗口类的成员函数
void CMyWnd::OnKeyDown(UINT nChar,UINT nRepCnt,UINT nFlags )
{
	InvalidateRect(m_rectBody, TRUE);
	switch(nChar)
	{
	case VK_UP:
		if(m_nMaze[m_nX][m_nY-1]==0)
			m_nY--;
		break;
	case VK_DOWN:
		if(m_nMaze[m_nX][m_nY+1]==0)
			m_nY++;
		break;
	case VK_LEFT:
		if(m_nMaze[m_nX-1][m_nY]==0)
			m_nX--;
		break;
	case VK_RIGHT:
		if(m_nMaze[m_nX+1][m_nY]==0)
			m_nX++;
		break;
	}
	m_rectBody=CRect( 10+m_nX*m_nWidth,
		10+m_nY*m_nHeight,
		10+m_nX*m_nWidth+m_nWidth,
		10+m_nY*m_nWidth+m_nHeight);
	InvalidateRect(m_rectBody, FALSE);
	if(m_nX==18&&m_nY==18)MessageBox("game is over!");
}
void CMyWnd::OnPaint()
{
	CPaintDC dc(this);
	for(int i=0; i<20; i++)
		for(int j=0; j<20; j++)
		{
			if(m_nMaze[i][j]==0)
			{
				dc.SelectStockObject(LTGRAY_BRUSH);
				dc.SelectStockObject(WHITE_PEN);
			}
			else
			{
				dc.SelectStockObject(BLACK_BRUSH);
				dc.SelectStockObject(BLACK_PEN);
			}
			dc.Rectangle( 10+i*m_nWidth,
				10+j*m_nHeight,
				10+i*m_nWidth+m_nWidth,
				10+j*m_nHeight+m_nHeight);
		}
		dc.SelectStockObject(DKGRAY_BRUSH);
		dc.SelectStockObject(BLACK_PEN);
		m_rectBody=CRect( 10+m_nX*m_nWidth,
			10+m_nY*m_nHeight,
			10+m_nX*m_nWidth+m_nWidth,
			10+m_nY*m_nWidth+m_nHeight);
		dc.Ellipse(m_rectBody);
		
}
// 应用程序类
class CMyApp: public CWinApp
{
public:
	BOOL InitInstance();
};
// 应用程序类的成员函数
BOOL CMyApp::InitInstance()
{
	CMyWnd *pFrame = new CMyWnd;
	pFrame->Create(0,_T("Move Ellipse With Keyboard"));
	pFrame->ShowWindow(SW_SHOWMAXIMIZED);
	pFrame->UpdateWindow(); 
	this->m_pMainWnd = pFrame;
	return TRUE;
}
// 全局应用程序对象
CMyApp ThisApp;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -