• 大小: 33.45MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-06-14
  • 语言: 其他
  • 标签: RPG  

资源简介

花了大概一周的时间写的一个RPG类游戏,功能完善,模块清晰,供相互学习参考

资源截图

代码片段和文件信息

#include “CBagSys.h“
#include “CPlayer.h“

CBagSys::CBagSys(int _row int _col)
{
row = _row;
col = _col;

for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
CBagUnit* pTmpBagUnit = new CBagUnit(CPosition(i j));
m_LogicBag.insert(make_pair(CPosition(i j) pTmpBagUnit));
}
}
// 初始化光标和文本输出点位置
cursorPos = CPosition();
posOfTextOut = CPosition(2 20);
posOfTextOut1 = CPosition(20 2);
}

CBagSys::~CBagSys()
{
// 释放堆内存
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
auto pTmp = m_LogicBag.at(CPosition(i j));
// 首先判断背包不为空
if (pTmp)
{
// 首先释放背包中的物品
if (pTmp->getItem())
{
delete pTmp->getItem();
pTmp->setItem(0);
}
// 然后在释放背包单元
delete pTmp;
pTmp = 0;
}
}
}
}

void CBagSys::enterBagSys()
{
system(“cls“);
// 打印背包信息
printBagUI();
printSelectedItemInfo();
updateCursorPos(0 0);
// 操作背包
while (true)
{
if (_kbhit())
{
switch (_getch())
{
case ‘a‘:
case ‘A‘:
{
updateCursorPos(0 -1);
break;
}
case ‘d‘:
case ‘D‘:
{
updateCursorPos(0 1);
break;
}
case ‘W‘:
case ‘w‘:
{
updateCursorPos(-1 0);
break;
}
case ‘s‘:
case ‘S‘:
{
updateCursorPos(1 0);
break;
}
case ‘q‘:
case ‘Q‘:
{
setcolor();
gotoXY(20 0);
return;
}
case ‘\r‘:
{
useItem(1);
break;
}
}
printSelectedItemInfo();
}
}
}

bool CBagSys::isHavedItemID(ItemID id)
{
for (map::iterator itr = m_LogicBag.begin(); itr != m_LogicBag.end(); itr++)
{
// 当物品遍历完还没有找到,就直接退出
if (itr->second == nullptr)
{
continue;
}
// 但物品时空的也直接退出
if (itr->second->getItem() == nullptr)
{
continue;
}
// 当找到钥匙时
if (itr->second->getItem()->id == id)
{
return true;
}
}

return false;
}

bool CBagSys::useItemID(ItemID id int num)
{
if (isHavedItemID(id))
{
// 找到对应的物品位置
for (map::iterator itr = m_LogicBag.begin(); itr != m_LogicBag.end(); itr++)
{
// 如果为空就直接返回false
if (itr->second == nullptr)
{
continue;
}
// 找到对应的物品
if (itr->second->getItem() == nullptr)
{
continue;
}
if (itr->second->getItem()->id == id)
{
auto pTmp = itr->second;
// 判断物品是否够用
if (pTmp->getNumOfItem() < num)
{
return false;
}
else
{
// 更新玩家身上的状态,然后在更新背包的状态

// 同时玩家身上需要装备上对应的物品
if (id == ID_Knife || id == ID_Sword || id == ID_Gun)
{
// 先判断玩家身上是否已经有装备如果有释放掉之前的装备
if (CPlayer::getInstancePtr()->getCurWeapon())
{
delete CPlayer::getInstancePtr()->getCurWeapon();
CPlayer::getInstancePtr()->setCurWeapon(0);
}
// 给玩家装备上新的装备
auto pTmp = CItemFactory::create(id);
CPlayer::getInstanceP

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      14651  2017-05-31 15:36  K1_RPG_Demo\CBagSys.cpp

     文件       1218  2017-05-31 15:29  K1_RPG_Demo\CBagSys.h

     文件        201  2017-05-26 14:54  K1_RPG_Demo\CBagUnit.cpp

     文件        379  2017-05-22 09:14  K1_RPG_Demo\CBagUnit.h

     文件      17043  2017-05-31 14:38  K1_RPG_Demo\CBirthScene.cpp

     文件        567  2017-05-26 09:16  K1_RPG_Demo\CBirthScene.h

     文件        818  2017-05-27 16:42  K1_RPG_Demo\CBullet.cpp

     文件        331  2017-05-26 17:40  K1_RPG_Demo\CBullet.h

     文件        103  2017-05-24 17:29  K1_RPG_Demo\CBulletCtrl.cpp

     文件        112  2017-05-24 17:29  K1_RPG_Demo\CBulletCtrl.h

     文件        827  2017-05-31 13:27  K1_RPG_Demo\CDirection.cpp

     文件        340  2017-05-30 17:46  K1_RPG_Demo\CDirection.h

     文件      32564  2017-05-31 14:38  K1_RPG_Demo\CGameScene1.cpp

     文件        784  2017-05-23 16:10  K1_RPG_Demo\CGameScene1.h

     文件      33717  2017-05-31 16:25  K1_RPG_Demo\CGameScene2.cpp

     文件       1814  2017-05-31 09:28  K1_RPG_Demo\CGameScene2.h

     文件      30922  2017-05-31 16:40  K1_RPG_Demo\CGameScene3.cpp

     文件       1119  2017-05-31 16:43  K1_RPG_Demo\CGameScene3.h

     文件        279  2017-05-30 21:21  K1_RPG_Demo\CItem.cpp

     文件        488  2017-05-30 21:21  K1_RPG_Demo\CItem.h

     文件       1699  2017-05-26 14:24  K1_RPG_Demo\CItemFactory.cpp

     文件        256  2017-05-21 15:37  K1_RPG_Demo\CItemFactory.h

     文件       1362  2017-05-25 12:00  K1_RPG_Demo\CMonster1.cpp

     文件        130  2017-05-25 17:20  K1_RPG_Demo\CMonster1.h

     文件       1366  2017-05-25 12:00  K1_RPG_Demo\CMonster2.cpp

     文件        130  2017-05-25 17:20  K1_RPG_Demo\CMonster2.h

     文件       1366  2017-05-25 12:00  K1_RPG_Demo\CMonster3.cpp

     文件        130  2017-05-25 17:20  K1_RPG_Demo\CMonster3.h

     文件       1366  2017-05-25 12:00  K1_RPG_Demo\CMonster4.cpp

     文件        130  2017-05-25 17:20  K1_RPG_Demo\CMonster4.h

............此处省略73个文件信息

评论

共有 条评论