当前位置: 首页>>代码示例>>C++>>正文


C++ CCharacter::Init方法代码示例

本文整理汇总了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));
//.........这里部分代码省略.........
开发者ID:keyage,项目名称:graine,代码行数:101,代码来源:MapData.cpp


注:本文中的CCharacter::Init方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。