资源简介
提供一个小游戏————推箱子 的源代码 希望大家仔细研究代码 成为自己都东西

代码片段和文件信息
/*++
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编写的贪吃蛇源码
相关资源
- 国际象棋的qt源代码
- C语言开发实战宝典
- 小甲鱼C语言课件 源代码
- VC++MFC小游戏实例教程(实例)+MFC类库
- c语言看发的网络协议 ,源代码
- C语言实现的DES对称加密算法
- 数据结构,迷宫问题C语言版源代码
- C语言 学生信息管理系统 源代码
- C语言版3D魔方游戏源代码
- QT5开发及源代码
- USB CAN Tool 源代码(LabVIEW 2011环境)
- 超声波水表源代码
- 一个模糊PID温度控制算法源代码
- 数据结构 图的遍历源代码
- 数据结构实验源代码集
- TCP/IP客户端和服务器端源代码,好用
- 交互式计算机图形学 第六版 OpenGL源代
- 打飞机小游戏57466
- 数据结构教程李春葆第五版书中例题
- 三次样条插值类源代码!
- diy写字机grbl v1.1源代码
- c++ 猜拳小游戏
- C语言常用算法源代码
- 关于LED制作的源代码合集(38套)
- C语言推箱子win控制台
-
STM32-ba
se64加密源代码 - C++“倒忌时”小游戏
- c++小游戏源码.doc
- 基于ege图形的推箱子游戏
- C++小游戏4款(源码)
评论
共有 条评论