コード例 #1
0
ファイル: sceneStageSelect.cpp プロジェクト: boxp/Pendulum
// コンストラクタ
CSceneStageSelect::CSceneStageSelect() :
IScene("img_stageSelect", "bgm_stageSelect")
{
	std::string settingFile = gm()->fm().GetFile("#StageSelectFile");
	std::ifstream f(settingFile);
	back_ = charabase::CharPtr(new charabase::CharBase());
	back_->resname = BACK_RESNAME;
	back_->pos.z = 1.f;
	if (f.fail())
	{
		debug::BToM("CSceneStageSelect::CSceneStageSelect path:%s", settingFile.c_str());
		fieldRect_.top = fieldRect_.left = 0;
		fieldRect_.right = system::WINW;
		fieldRect_.bottom = system::WINH;
	}
	else
	{
		LoadInfo(f);
	}
	descHeight_ = 0.f;

	gm()->init();
	InsertObject(ObjPtr(new CStageMng()));
	InsertObject(ObjPtr(new CScoreMng()));
}
コード例 #2
0
ファイル: obj_ptr.cpp プロジェクト: giucamp/rreflective
	ObjPtr ObjPtr::cast_to(QualifiedTypePtr i_dest_type) const
	{
		if (m_object != nullptr)
		{
			auto source_primary_type = m_type.primary_type();
			auto dest_primary_type = i_dest_type.primary_type();
			auto result = source_primary_type->try_dynamic_cast(m_object, *dest_primary_type);
			if (result != nullptr)
			{
				return ObjPtr(result, i_dest_type);
			}			
		}
		return ObjPtr();
	}
コード例 #3
0
	ObjPtr Boolean::sendMsg(MsgPtr message)
	{
		
		switch(message->id)
		{
			case 5859493UL: // ==
				return equal(message->args.front());
				break;
			case 5858873UL: // !=
				return notEqual(message->args.front());
				break;
			case 1756282918UL: // to-str
				return toStr();
				break;
			case 177539UL: // &
				return andOp(message->args.front());
				break;
			case 177625UL: // |
				return orOp(message->args.front());
				break;
			case 177540UL: // !
				return notOp();
				break;
			case 2123293021UL: // to-bool
				return make(_value);
				break;
			default:
				std::cerr << "Boolean does not support method(" << message << ")" << std::endl;
				throw 100;
				break;
		}
		
		return ObjPtr();
	}
コード例 #4
0
	ObjPtr Boolean::make(bool boolean)
	{
		Boolean* boolObj = new Boolean();
		boolObj->_value = boolean;
		
		return ObjPtr(boolObj);
	}
コード例 #5
0
ファイル: nWayShot.cpp プロジェクト: jg-maon/Pendulum
void CNWayShot::CreateAttack(const mymath::Vec3f& pos, int n, float angle, float interval, float speed, float acc, bool centerFlag)
{
	for (int i = 0; i < n; ++i)
	{
		charabase::CharBase shot(shot_.obj());	// 座標、角度、画像、初速度
		// 座標
		shot.pos = pos;
		// 発射角
		shot.angle = angle + (interval * ((centerFlag) ? static_cast<float>(i - n / 2) : static_cast<float>(i)));
		if (shot.angle >= 360.f)
			shot.angle -= 360.f;
		else if (shot.angle < 0.f)
			shot.angle += 360.f;
		// 発射角に合わせて初速度や加速度の向きを変える
		const float rad = math::Calc_DegreeToRad(shot.angle);
		const float c = std::cosf(rad);
		const float s = std::sinf(rad);
		shot.add.x = speed *  c;
		shot.add.y = speed * -s;
		shot.add.z = 0.f;

		mymath::Vec3f a(acc *  c,
			acc * -s);	// 加速度
		CShot shot_info(shot, a);	// 追加用
		shot_info.start();
		// 当たり判定領域のコピー
		shot_info.SetCollisionAreas(shot_);

		// 登録
		gm()->AddObject(ObjPtr(new CShot(shot_info)));
	}

}
コード例 #6
0
ファイル: gameManager.cpp プロジェクト: jg-maon/Pendulum
void CGameManager::start()
{
	__super::start();

	fileMng_.Load();

	if (!GetObj(typeid(CStageMng)))
	{
		auto sm = std::shared_ptr<CStageMng>(new CStageMng());
		AddObject2(sm);
		TempCharacter t(sm);
		sm->load();
#ifdef DEF_GM_PTR
		//SetStageMngPtr(sm);
#endif
	}

	if (!GetObj(typeid(CScoreMng)))
	{
		auto sm = std::shared_ptr<CScoreMng>(new CScoreMng());
		AddObject2(sm);
#ifdef DEF_GM_PTR
		SetScoreMngPtr(sm);
#endif
	}

	if (!GetObj(typeid(CCollision)))
		AddObject2(ObjPtr(new CCollision()));

}
コード例 #7
0
ファイル: sceneMain.cpp プロジェクト: boxp/Pendulum
// コンストラクタ
CSceneMain::CSceneMain():
IScene("","bgm_main")
{
	InsertObject(ObjPtr(new CCollision()));
}