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


C++ CScene::GetNext方法代码示例

本文整理汇总了C++中CScene::GetNext方法的典型用法代码示例。如果您正苦于以下问题:C++ CScene::GetNext方法的具体用法?C++ CScene::GetNext怎么用?C++ CScene::GetNext使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CScene的用法示例。


在下文中一共展示了CScene::GetNext方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: sinf

//*********************************************
//	ギミック系更新処理
//
//*********************************************
void	CPlayer::HitGimmick(void)
{
	//ギミック初期化
	m_pSceneLink = NULL;

	for(int	i = 0; i < MAX_LIST; i++)
	{
		CScene	*pScene = CScene::GetTopScene(i);
		while(pScene)
		{
			CScene	*pSceneNext = pScene->GetNext();
			CScene::OBJECT_TYPE	Type = pScene->GetType();

			//CGimmickだった場合
			if(Type == CScene::TYPE_GIMMICK)
			{
				//ギミックの4頂点の変数宣言
				D3DXVECTOR3	aVtxScene[4];

				//ギミック情報取得
				VERTEX_3D	pVtx;
				pScene->GetVtx(&pVtx);

				//ギミック角度設定
				float	fValueSin = sinf(pVtx.Rot_vtx.y);
				float	fValueCos = cos(pVtx.Rot_vtx.y);
				D3DXVECTOR3	VtxMax = pVtx.vtx + pVtx.Scail_vtx;
				D3DXVECTOR3	VtxMin = pVtx.vtx - pVtx.Scail_vtx;

				aVtxScene[0] = D3DXVECTOR3(pVtx.vtx.x - pVtx.Scail_vtx.x ,pVtx.vtx.y + CScene3d::GetHeight(pVtx.vtx),pVtx.vtx.z + pVtx.Scail_vtx.z);
				aVtxScene[1] = D3DXVECTOR3(pVtx.vtx.x + pVtx.Scail_vtx.x,pVtx.vtx.y + CScene3d::GetHeight(pVtx.vtx),pVtx.vtx.z + pVtx.Scail_vtx.z);
				aVtxScene[2] = D3DXVECTOR3(pVtx.vtx.x + pVtx.Scail_vtx.x,pVtx.vtx.y + CScene3d::GetHeight(pVtx.vtx),pVtx.vtx.z - pVtx.Scail_vtx.z);
				aVtxScene[3] = D3DXVECTOR3(pVtx.vtx.x - pVtx.Scail_vtx.x,pVtx.vtx.y + CScene3d::GetHeight(pVtx.vtx),pVtx.vtx.z - pVtx.Scail_vtx.z);
/*
				aVtxScene[0] = D3DXVECTOR3( pVtx.vtx.x + fValueSin * VtxMin.x + fValueCos * VtxMax.z,
											pVtx.vtx.y + CScene3d::GetHeight(pVtx.vtx),
											pVtx.vtx.z + fValueCos * VtxMax.z + fValueSin * VtxMin.x);

				aVtxScene[1] = D3DXVECTOR3( pVtx.vtx.x + fValueSin * VtxMax.x + fValueCos * VtxMin.z,
											pVtx.vtx.y + CScene3d::GetHeight(pVtx.vtx),
											pVtx.vtx.z + fValueCos * VtxMax.z - fValueSin * VtxMin.x);

				aVtxScene[2] = D3DXVECTOR3( pVtx.vtx.x + fValueSin * VtxMax.x - fValueCos * VtxMin.z,
											pVtx.vtx.y + CScene3d::GetHeight(pVtx.vtx),
											pVtx.vtx.z + fValueCos * VtxMin.z - fValueSin * VtxMax.x);

				aVtxScene[3] = D3DXVECTOR3( pVtx.vtx.x + fValueSin * VtxMin.x - fValueCos * VtxMax.z,
											pVtx.vtx.y + CScene3d::GetHeight(pVtx.vtx),
											pVtx.vtx.z + fValueCos * VtxMin.z + fValueSin * VtxMax.x);
*/
				int	HitCount = 0;
				for(int	nCount = 0 ; nCount < 4 ; nCount++)
				{
					//弾と壁のベクトル関係の計算
					D3DXVECTOR3	nVtx = aVtxScene[(int)(nCount + 1) % 4] - aVtxScene[nCount];
					D3DXVECTOR3	PlayerVtx = m_Vertex_3d.vtx - aVtxScene[nCount];

					//プレイヤーが範囲内にいる
					if( (nVtx.z * PlayerVtx.x- nVtx.x * PlayerVtx.z) > 0 )
					{
						HitCount++;
					}

					if(HitCount >= 4)
					{
						//上空にいる

						//上からめりこんでいるか
						if(m_Vertex_3d.Speed_vtx.y < 1.2f && m_Vertex_3d.vtx.y < pVtx.vtx.y + CScene3d::GetHeight(pVtx.vtx) + pVtx.Scail_vtx.y &&
															m_Vertex_3d.vtx.y > pVtx.vtx.y + CScene3d::GetHeight(pVtx.vtx))
						{
							//位置補正
							m_Vertex_3d.PosNowY = m_Vertex_3d.vtx.y;
							m_Vertex_3d.vtx.y = pVtx.vtx.y + CScene3d::GetHeight(pVtx.vtx) + pVtx.Scail_vtx.y;
							jump = false;
							m_pSceneLink = pScene;
							//影生成
							//CShadow::Create(CRenderer::GetDevice(),m_Vertex_3d.vtx,D3DXCOLOR(1,1,1,1),m_Vertex_3d.Scail_vtx,3,SHADOW_TEXTURE);
							break;
						}
						//下からめりこんでいるか
						else	if(m_Vertex_3d.Speed_vtx.y > 0.0f && m_Vertex_3d.vtx.y + m_Vertex_3d.Scail_vtx.y > pVtx.vtx.y + CScene3d::GetHeight(pVtx.vtx) && 
															m_Vertex_3d.vtx.y + m_Vertex_3d.Scail_vtx.y < pVtx.vtx.y + CScene3d::GetHeight(pVtx.vtx) + pVtx.Scail_vtx.y)
						{
							//位置補正
							m_Vertex_3d.Speed_vtx.y = 0.0f;
							//影生成
							//CShadow::Create(CRenderer::GetDevice(),m_Vertex_3d.vtx,D3DXCOLOR(1,1,1,1),m_Vertex_3d.Scail_vtx,3,SHADOW_TEXTURE);
							break;
						}
						//下にいるか
						else
						{
							m_Vertex_3d.PosNowY = 0.0f;
							//影生成
							//CShadow::Create(CRenderer::GetDevice(),m_Vertex_3d.vtx,D3DXCOLOR(1,1,1,1),m_Vertex_3d.Scail_vtx,3,SHADOW_TEXTURE);
//.........这里部分代码省略.........
开发者ID:ProjectTest001,项目名称:TenkuuProject,代码行数:101,代码来源:player.cpp


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