本文整理汇总了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);
//.........这里部分代码省略.........