本文整理汇总了C++中CCharacter::Init方法的典型用法代码示例。如果您正苦于以下问题:C++ CCharacter::Init方法的具体用法?C++ CCharacter::Init怎么用?C++ CCharacter::Init使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CCharacter
的用法示例。
在下文中一共展示了CCharacter::Init方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LoadData
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Name : マップデータロード
// Description : 任意のマップデータをロードする
// Arguments : id / ステージID
// Returns : 成否(true:成功)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
bool CMapData::LoadData(int id)
{
// ----- 初期化処理
m_pFieldBlock.clear();
m_pLayoutBlock.clear();
m_pLayoutObject.clear();
// ----- マップデータ読み込み
std::ifstream ifs(MAPDATA_LIST[id]);
if (ifs.fail()) {
#ifdef _DEBUG_MESSAGEBOX
LPTSTR str = new TCHAR[256];
_swprintf(str, _T("MapData::Load map data error! stage ID %d."), id);
MessageBox(NULL, str, _T("error"), MB_OK | MB_ICONERROR);
delete[] str;
#endif
return false;
}
std::istreambuf_iterator<char> it(ifs);
std::istreambuf_iterator<char> last;
std::string str(it, last);
// ----- マップデータ登録
// 登録準備
std::stringstream ss(str);
std::string tmp;
// 開始位置読み込み
getline(ss, tmp, ','); // X座標登録
m_startPoint.x = stof(tmp);
getline(ss, tmp, ','); // Y座標登録
m_startPoint.y = stof(tmp);
getline(ss, tmp); // 改行をスキップ
// 左右壁位置読み込み
getline(ss, tmp, ','); // 左壁のX座標登録
m_leftWallX = stof(tmp);
getline(ss, tmp, ','); // 右壁のX座標登録
m_rightWallX = stof(tmp);
getline(ss, tmp); // 改行をスキップ
// 上下壁位置読み込み
getline(ss, tmp, ','); // 上壁のY座標登録
m_topWallY = stof(tmp);
getline(ss, tmp, ','); // 下壁のY座標登録
m_bottomWallY = stof(tmp);
getline(ss, tmp); // 改行をスキップ
// フィールドブロックのデータ読み込み
CCharacter* pObj = NULL;
CFieldBlock* pFBlock = NULL;
int eid = 0;
int prevBid = -1;
int cnt = 0;
float width = 0.0f;
float height = 0.0f;
D3DXVECTOR3 color(0.0f, 0.0f, 0.0f);
int type = -1;
while (getline(ss, tmp, ',')) {
switch (cnt % MAX_DATAPARAM) {
case DP_BID:
break;
case DP_EID:
eid = stoi(tmp);
if (eid <= 0) {
pFBlock = CFieldBlock::Create();
pFBlock->Init();
}
break;
case DP_TEX:
{
#ifdef _MULTI_THREAD_NOWLOADING
EnterCriticalSection(CGame::GetCriticalSection());
#endif
LPTSTR ws = new TCHAR[tmp.size() + 1];
mbstowcs(ws, tmp.c_str(), tmp.size());
ws[tmp.size()] = '\0';
pObj = CCharacter::Create(ws);
pObj->Init();
delete[] ws;
#ifdef _MULTI_THREAD_NOWLOADING
LeaveCriticalSection(CGame::GetCriticalSection());
#endif
break;
}
case DP_POSX:
pObj->TranslateX(stof(tmp));
break;
case DP_POSY:
pObj->TranslateY(stof(tmp));
//.........这里部分代码省略.........