资源简介
提供一个小游戏————推箱子 的源代码 希望大家仔细研究代码 成为自己都东西
代码片段和文件信息
/*++
Copyright (c) AFE(Active-Free-Elegance)
Module Name:
BoxMan.cpp
Abstract:
BoxMan Game Class solve all the important movment of the man and box
and some thing refer to them
Author:
Weijian Luo (Arthur Luo) 15-Jun-2005
E-mail: skybluehacker@yahoo.com.cn
Revision History: 1.0
--*/
#include “stdafx.h“
#include “skyblue_BoxMan.h“
#include “BoxMan.h“
#include //音效 Winmm.lib
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//地图状态
#define MAP_BACKGROUP 48 //‘0‘ 对应字符‘0‘背景
#define MAP_WHITEWALL 49 //‘1‘ 墙
#define MAP_BLUEWALL 50 //‘2‘ 通道
#define MAP_BALL 51 //‘3‘ 目的点
#define MAP_YELLOWBOX 52 //‘4‘ 箱子
#define MAP_REDBOX 53 //‘5‘ 安放好的箱子
#define MAP_MANWALL 54 //‘6‘ 人在通道区域
#define MAP_MANBALL 55 //‘7‘ 人在目的点区域
//声音状态
#define SOUND_STATE_START 0 //游戏开始
#define SOUND_STATE_MOVE 1 //工人行走移动
#define SOUND_STATE_PUSH 2 //行走并推动箱子
#define SOUND_STATE_VICTORY 3 //胜利
//游戏区域小方块大小
#define BLOCK_WIDTH 20 // 宽度
#define BLOCK_HEIGHT 20 // 深度
//假宏定义
int MAX_MISSION_NUM = 1;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CBoxMan::CBoxMan()
{
m_iMissionNum = 1;
::MAX_MISSION_NUM = LoadMaxMissionNum();
LoadMap(m_iMissionNum);
m_ptManPosition = GetManPosition();
}
CBoxMan::~CBoxMan()
{
}
void CBoxMan::LoadMap(int iMissionNum)
{
CString str;
str.Format(“[%d]“ iMissionNum);
FILE *pFile = fopen(“map.info“ “rb“);
if (pFile == NULL)
{
AfxMessageBox(“载入地图文件失败“);
return;
}
char cTmp[M_TAB_WIDTH*2];
fgets(cTmp M_TAB_WIDTH*2 pFile);
while (strncmp(cTmp str 3) != 0)
{
fgets(cTmp M_TAB_WIDTH*2 pFile);
}
for (int i = 0; i < M_TAB_HEIGHT; i++)
fgets(m_cMap[i]M_TAB_WIDTH*2 pFile);
fclose(pFile);
}
int CBoxMan::LoadMaxMissionNum(void)
{
int iMissionNum = 1;
CString str;
str.Format(“[%d]“ iMissionNum);
FILE *pFile = fopen(“map.info“ “rb“);
if (pFile == NULL)
{
AfxMessageBox(“载入地图文件失败“);
return -1;
}
char cTmp[M_TAB_WIDTH*2];
while( !feof(pFile) )//not end of file
{
fgets(cTmp M_TAB_WIDTH*2 pFile);
if(strncmp(cTmp str 3) == 0)
{
str.Format(“[%d]“ ++iMissionNum);
}
}
fclose(pFile);
return iMissionNum-1;
}
CPoint CBoxMan::GetManPosition()
{
CPoint manPosition(0 0);
for (int i = 0; i < M_TAB_HEIGHT; i++)
{
for (int j = 0; j < M_TAB_WIDTH; j++)
{
if (m_cMap[i][j]==MAP_MANWALL || m_cMap[i][j]==MAP_MANBALL)
{
manPosition.x = j;
manPosition.y = i;
}
}
}
return manPosition;
}
vo
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
I.A.... 15145 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan.cpp
I.A.... 1936 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan.h
I.A.... 3633 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxManWnd.cpp
I.A.... 1844 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxManWnd.h
I.A.... 14162 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Edit.cpp
I.A.... 1823 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Edit.h
I.A.... 35588 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.aps
I.A.... 2418 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.clw
I.A.... 3029 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.cpp
I.A.... 4935 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.dsp
I.A.... 551 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.dsw
I.A.... 1626 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.h
I.A.... 74752 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.ncb
I.A.... 55808 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.opt
I.A.... 2198 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.plg
I.A.... 10381 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.rc
I.A.... 1882 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_EditerDoc.cpp
I.A.... 1552 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_EditerDoc.h
I.A.... 2085 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_EditerView.cpp
I.A.... 1830 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_EditerView.h
I.A.... 8231 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\Boxman_EditerWnd.cpp
I.A.... 2459 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\Boxman_EditerWnd.h
I.A.... 1405036 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\Debug\BoxMan_Editer.exe
I.A.... 11343 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\Debug\map.info
I..D... 0 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\Debug
I.A.... 1488 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\LoadMapDlg.cpp
I.A.... 1542 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\LoadMapDlg.h
I.A.... 1504 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\MainFrm.cpp
I.A.... 1421 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\MainFrm.h
I.A.... 11083 2009-08-15 11:03 推箱子\skyblue_BoxMan\BoxMan_Editer\map.info
............此处省略72个文件信息
- 上一篇:LY-51S V2.33 c语言 160例程
- 下一篇:MFC编写的贪吃蛇源码
相关资源
- 计算机图形学源代码
- mpeg4视频解码源码
- C++实验指导书以及个人源代码
- 职工信息管理系统 c++项目源代码
- vc文件捆绑器源代码
- 基于MFC对话框扫雷程序
- 数字图像处理 DIB的读取与显示VC源代
- UG开发源代码
- visual c++的几个经典小游戏
- 推箱子小游戏 c++ wxwidgets code:blocks
- C++ 源码小游戏 超级玛丽,五子棋
- VC++防火墙源代码
- c++builder6.0开发的信息管理系统
- 数字签名 /C++/源代码
- 酒店管理系统源代码C++
- 基于OpenCV的步态能量图源代码GEI Gai
- VC++6.0小游戏--扫雷源代码
- C++考勤管理系统源代码
- 飞机飞行源代码VC6.0
- 数据库课程设计(教室管理信息系统
- 《无线通信系统仿真-c++使用模型》源
- 《C++ GUI Qt 4编程》第二版源代码
- c++课程设计模拟计算器含源代码、文
- Qt5.11.1+VS2017 X64 C++动态编译 串口通讯
- C++ BOOST::Asio库网络编程源代码
- c++ VS2013 mysql 源代码
- C/C++标准库源代码
- 易学C++pdf+随书源代码+习题解答
- C++.Net编写的记事本程序
- VC++解析PSD文件并显示图像源代码
评论
共有 条评论