资源简介
花了大概一周的时间写的一个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个文件信息
相关资源
- Action-RPG Starter Kit 6.5
- Top-Down RPG Starter Kit
- 程序设计方法学课程设计---RPG游戏
- unityAction-RPGStarterKit6.01.zip
- Action-RPG Starter Kit 6.51.zip
- 一套像素风rpg 2D游戏图片素材资源
- RPG MAKER 解密
- 解包多种RPG加密
- 完整的RPG游戏源代码
- cocos2d-x完整RPG游戏源代码
- unity3d RPG游戏《外星人》完整
- Unity3D地下守护神ARPG开发三部曲视频教
- RPG游戏黑暗之光
- 韩国网游数码宝贝RPG数码宝贝ol模拟服
- 年度史诗MOMO ARPG 《泰斗破坏神》全套
- RPG游戏策划(一)
- Unity开发RPG游戏黑暗之光教学视频及素
- RPG Maker XP 脚本集
- as3最精悍最高效AStar寻路算法(不足
- RPGMakerMVGame Hook patcher 0.0.3.4.zip
- PAK编辑工具 RPGViewer.exe
- skynet mmorpg
- 某MMORPG手机网络游戏的服务端源码
- Beginning rpg maker MV.pdf 英文经典原版教
- RPG Maker存档相关脚本整合
- Unity2017版本的2D横版ARPG游戏原型
- rpgsave修改存档.zip
- RGSS3A 解包 RPGDecrypter
评论
共有 条评论