【文件属性】:
文件名称:C++推箱子小游戏
文件大小:14KB
文件格式:RAR
更新时间:2017-08-27 05:48:08
VS2010
简易推箱子
#include "Map.h"
#include
int XDest = 4;
int YDest = 4;
void CMap::Init()
{
int i,j;
CPoint cPoint;
CSprite *pSphte;
CPlayer cPlay;
CBox cBox;
CDest cDest;
int XPlayer = 4;
int YPlayer = 6;
int XBox = 4;
int YBox = 5;
for (i = 0; i < 10; i++)
{
for (j =0; j < 10; j++)
{
if (i == 0 || j == 0 || i == 9 || j == 9)
{
cPoint.SetPoint(i, j);
pSphte = new CWall(cPoint);
m_nMap[i][j] = pSphte;
}
else if (i == XPlayer && j == YPlayer)
{
cPoint.SetPoint(i,j);
pSphte = new CPlayer(cPoint);
m_nMap[i][j] = pSphte;
}
else if (i == XBox && j == YBox)
{
cPoint.SetPoint(i,j);
pSphte = new CBox(cPoint);
m_nMap[i][j] = pSphte;
}
else if (i == XDest && j == YDest)
{
cPoint.SetPoint(i,j);
pSphte = new CDest(cPoint);
m_nMap[i][j] = pSphte;
}
else
{
cPoint.SetPoint(i, j);
pSphte = new CSpace(cPoint);
m_nMap[i][j] = pSphte;
}
}
cout<GetSprite();
}
cout<GetX();
int YPlayer = pPlayer->GetY();
CBox *pBox = GetBox();
int XBox = pBox->GetX();
int YBox = pBox->GetY();
CDest *pDest = GetDest();
switch(ch)
{
case 'a':
{
int yPlayer = pPlayer->GetY();
YPlayer--;
if ("※" == m_nMap[XPlayer][YPlayer]->GetSprite())
{
YPlayer++;
}
else if (m_nMap[XPlayer][YPlayer]->GetSprite() == "■" || m_nMap[XPlayer][YPlayer]->GetSprite() == "●")
{
int yBox = pBox->GetY();
YBox--;
if (m_nMap[XBox][YBox]->GetSprite() == "※")
{
YPlayer++;
YBox++;
}
CSprite *pB = m_nMap[pBox->GetX()][yBox];
m_nMap[pBox->GetX()][yBox] = m_nMap[XBox][YBox];
m_nMap[XBox][YBox] = pB;
pBox->SetY(YBox);
m_nMap[pBox->GetX()][yBox]->SetY(yBox);
}
CSprite *pP = m_nMap[pPlayer->GetX()][yPlayer];
m_nMap[pPlayer->GetX()][yPlayer] = m_nMap[XPlayer][YPlayer];
m_nMap[XPlayer][YPlayer] = pP;
pPlayer->SetY(YPlayer);
m_nMap[pPlayer->GetX()][yPlayer]->SetY(yPlayer);
}
break;
case 'd':
{
int yPlayer = pPlayer->GetY();
YPlayer++;
if ("※" == m_nMap[XPlayer][YPlayer]->GetSprite())
{
YPlayer--;
}
else if (m_nMap[XPlayer][YPlayer]->GetSprite() == "■" || m_nMap[XPlayer][YPlayer]->GetSprite() == "●")
{
int yBox = pBox->GetY();
YBox++;
if (m_nMap[XBox][YBox]->GetSprite() == "※")
{
YPlayer--;
YBox--;
}
CSprite *pB = m_nMap[pBox->GetX()][yBox];
m_nMap[pBox->GetX()][yBox] = m_nMap[XBox][YBox];
m_nMap[XBox][YBox] = pB;
pBox->SetY(YBox);
m_nMap[pBox->GetX()][yBox]->SetY(yBox);
}
CSprite *pP = m_nMap[pPlayer->GetX()][yPlayer];
m_nMap[pPlayer->GetX()][yPlayer] = m_nMap[XPlayer][YPlayer];
m_nMap[XPlayer][YPlayer] = pP;
pPlayer->SetY(YPlayer);
m_nMap[pPlayer->GetX()][yPlayer]->SetY(yPlayer);
}
break;
case 'w':
{
int xPlayer = pPlayer->GetX();
XPlayer--;
if ("※" == m_nMap[XPlayer][YPlayer]->GetSprite())
{
XPlayer++;
}
else if (m_nMap[XPlayer][YPlayer]->GetSprite() == "■" || m_nMap[XPlayer][YPlayer]->GetSprite() == "●")
{
int xBox = pBox->GetX();
XBox--;
if (m_nMap[XBox][YBox]->GetSprite() == "※")
{
XPlayer++;
XBox++;
}
CSprite *pB = m_nMap[xBox][pBox->GetY()];
m_nMap[xBox][pBox->GetY()] = m_nMap[XBox][YBox];
m_nMap[XBox][YBox] = pB;
pBox->SetX(XBox);
m_nMap[xBox][pBox->GetY()]->SetX(xBox);
}
CSprite *pP = m_nMap[xPlayer][pPlayer->GetY()];
m_nMap[xPlayer][pPlayer->GetY()] = m_nMap[XPlayer][YPlayer];
m_nMap[XPlayer][YPlayer] = pP;
pPlayer->SetX(XPlayer);
m_nMap[xPlayer][pPlayer->GetY()]->SetX(xPlayer);
}
break;
case 's':
{
int xPlayer = pPlayer->GetX();
XPlayer++;
if ("※" == m_nMap[XPlayer][YPlayer]->GetSprite())
{
XPlayer--;
}
else if (m_nMap[XPlayer][YPlayer]->GetSprite() == "■" || m_nMap[XPlayer][YPlayer]->GetSprite() == "●")
{
int xBox = pBox->GetX();
XBox++;
if (m_nMap[XBox][YBox]->GetSprite() == "※")
{
XPlayer--;
XBox--;
}
CSprite *pB = m_nMap[xBox][pBox->GetY()];
m_nMap[xBox][pBox->GetY()] = m_nMap[XBox][YBox];
m_nMap[XBox][YBox] = pB;
pBox->SetX(XBox);
m_nMap[xBox][pBox->GetY()]->SetX(xBox);
}
CSprite *pP = m_nMap[xPlayer][pPlayer->GetY()];
m_nMap[xPlayer][pPlayer->GetY()] = m_nMap[XPlayer][YPlayer];
m_nMap[XPlayer][YPlayer] = pP;
pPlayer->SetX(XPlayer);
m_nMap[xPlayer][pPlayer->GetY()]->SetX(xPlayer);
}
break;
default:
break;
}
if ((pPlayer->GetX() == XDest && pPlayer->GetY() == YDest) || (pBox->GetX() == XDest && pBox->GetY() == YDest))
{
int i,j;
for (i = 0; i < 10; i++)
{
for (j =0; j < 10; j++)
{
if (m_nMap[i][j]->GetSprite() == "◎")
{
m_nMap[i][j]->SetSprite(" ");
}
}
}
}
else if (m_nMap[XDest][YDest]->GetSprite() == " ")
{
m_nMap[XDest][YDest]->SetSprite("◎");
}
if (m_nMap[XDest][YDest]->GetSprite() == "■")
{
m_nMap[XDest][YDest]->SetSprite("●");
// cout<<"游戏结束"<GetX() != XDest || pBox->GetY() != YDest)
{
pBox->SetSprite("■");
}
}
CPlayer *CMap::GetPlayer(void)
{
int i, j;
for (i = 0; i < 10; i++)
{
for (j =0; j < 10; j++)
{
if (m_nMap[i][j]->GetSprite() == "♀")
{
return (CPlayer *)m_nMap[i][j];
}
}
}
}
CBox *CMap::GetBox(void)
{
int i, j;
for (i = 0; i < 10; i++)
{
for (j =0; j < 10; j++)
{
if (m_nMap[i][j]->GetSprite() == "■" || m_nMap[i][j]->GetSprite() == "●")
{
return (CBox *)m_nMap[i][j];
}
}
}
}
CDest *CMap::GetDest(void)
{
int i, j;
for (i = 0; i < 10; i++)
{
for (j =0; j < 10; j++)
{
if (m_nMap[i][j]->GetSprite() == "◎")
{
return (CDest *)m_nMap[i][j];
}
}
}
}
【文件预览】:
C++推箱子
----stdafx.cpp(214B)
----Dest.h(221B)
----Wall.cpp(80B)
----Map.cpp(6KB)
----Box.cpp(75B)
----stdafx.h(233B)
----Space.h(215B)
----Player.h(232B)
----targetver.h(236B)
----Wall.h(209B)
----C++推箱子.cpp(296B)
----Point.cpp(86B)
----C++推箱子.sln(890B)
----C++推箱子.suo(36KB)
----Point.h(345B)
----Space.cpp(83B)
----Map.h(539B)
----C++推箱子.vcxproj(5KB)
----Player.cpp(87B)
----Sprite.cpp(306B)
----Box.h(212B)
----C++推箱子.vcxproj.filters(3KB)
----Dest.cpp(83B)
----Sprite.h(615B)
----C++推箱子.vcxproj.user(143B)
----ReadMe.txt(2KB)