資源簡介
提供一個小游戲————推箱子 的源代碼 希望大家仔細研究代碼 成為自己都東西

代碼片段和文件信息
/*++
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?????????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?????{
????????for?(int?j?=?0;?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編寫的貪吃蛇源碼
評論
共有 條評論