Exemple #1
0
//============================================================================
//レンダリング
//============================================================================
void CEffectMaxCharge::Rendering()
{
	Renderer::IRender *pRender = CCommonObject::GetAppli()->GetRenderer();
	
	if( m_IsAdd )
	{
		pRender->SetDrawType( DRAW_TYPE_ADD );

	
		CSprite::Rendering();

		pRender->SetDrawType( DRAW_TYPE_NORMAL );

	}
	
	else if( m_IsBlend )
	{
		pRender->SetDrawType( DRAW_TYPE_BLEND );

	
		CSprite::Rendering();

		pRender->SetDrawType( DRAW_TYPE_NORMAL );	
	}

	else
	{
		CSprite::Rendering();
	}
	
	
	
}
bool CModelManager::LoadModel(const char *file )
{
	Renderer::IRender *render = GameSystem::SystemGetter::GetRender();
	Scene::ISceneManager * pSceneMgr = GameSystem::SystemGetter::GetSceneManager();

	if( file == NULL )
	{
		return false;
	}
	ATOM atom = AddAtom(file);
	if( m_relation[atom] != NULL )
	{
		return true;
	}

	m_pFileManager->SetCurrentPath( "Model" );
	Renderer::Object::IModel *model;
	model = render->CreateModelFromFile( file );
	m_pFileManager->SetCurrentPath( "Texture" );
	if( model == NULL )
	{
		return false;
	}
	Scene::IModelActor *actor = pSceneMgr->CreateActor( model );
	if( actor == NULL )
	{
		model->Release();
		delete model;
		return false;
	}

	m_relation_to_model[atom] = model;
	m_relation[atom] = actor;

	m_added_models.push_back(atom);

	return true;
}
// 初期化
bool InitializeSelene( ICore *pCore , File::IFileManager **ppFileMgr , IGraphicCard	**ppGraphicCard , 
					  Renderer::IRender **ppRender , Scene::ISceneManager **ppSceneMgr , Scene::ICamera **ppCamera ,
					  int screen_width , int screen_height )
{
	if( !InitializeFileMgr( pCore , ppFileMgr ) )
	{
		return false;
	}
	if( !InitializeGraphicCard( pCore , ppGraphicCard ) )
	{
		return false;
	}
	//-----------------------------------------------------------------
	// ウィンドウ作成
	//-----------------------------------------------------------------
	// ICoreインターフェイス内の情報に従ってアプリケーション
	// ウィンドウを生成します。
	// IGraphicCardからの情報を元に画面解像度などを変更する場合は、
	// ICore::Start()を呼び出す前に行ってください。
	pCore->Start( screen_width , screen_height , true );

	if( !InitializeRender( *ppGraphicCard , ppRender ) )
	{
		return false;
	}

	if( !InitializeScene( *ppRender , ppSceneMgr , screen_width , screen_height ) )
	{
		return false;
	}

	if( !InitializeCamera( *ppSceneMgr , ppCamera , screen_width , screen_height ) )
	{
		return false;
	}

	// 深度処理のステート設定
	//   深度バッファに関しての設定を行います。
	//   深度バッファへの書き込みを有効にし、
	//   深度バッファのテストを有効にしています。
	Renderer::IRender *pRender = *ppRender;
	pRender->SetDepthTestEnable( true );
	pRender->SetDepthWriteEnable( true );

	// 描画ステート
	pRender->SetAlphaTestEnable( true );		// アルファテストON
	pRender->SetDepthTestEnable( true );		// ZテストON
	pRender->SetDepthWriteEnable( true );		// Z書き込みON
	pRender->SetDrawType( DRAW_TYPE_BLEND );	// 通常描画

	return true;
}
Exemple #4
0
//============================================================================
//ファイル読み込み
//============================================================================
//[return]
//	ファイル読み込みに成功したか
//===========================================================================
bool CSprite::Load( )
{
	Renderer::IRender *pRender = CCommonObject::GetAppli()->GetRenderer();
	File::IFileManager *pFileMgr = CCommonObject::GetAppli()->GetFileMgr();
	
	pFileMgr->SetCurrentPath("Texture");
	
	const char *pFileName = m_strFileName.c_str();
	
	printf("LOAD TEXTURE[%s]", pFileName );
	
	//テクスチャファイルの生成(同一ファイルがあったら複製)
	m_pTex = pRender->CreateTextureFromFile( pFileName );

	_ASSERT( m_pTex );
	
	//読み込みに失敗?
	if( m_pTex->IsInvalid() )
	{
		return false;
	}
	
	printf( "                 : -> %s\n", m_pTex->IsInvalid() ? "Failed" : "Succeeded" );
	
	/*サイズの設定*/
	m_fSize.x = toF( m_pTex->GetOriginalSize().x / m_DivNum.x );
	m_fSize.y = toF( m_pTex->GetOriginalSize().y / m_DivNum.y );
	
	m_SrcRect.Set( 0, 0, m_fSize.x, m_fSize.y ),
	
	/*スプライトの生成*/
	CreateSprite( pRender, 500 );
	
	return true;
	
}
Exemple #5
0
//=============================================================================
//処理
//=============================================================================
//[input]
//	pScene:設定するシーン
//=============================================================================
void CScene::Exec(CScene *pScene)
{
	Renderer::IRender *pRender = pScene->GetAppDevice()->GetRenderer();
	
	CSprite *pSpr = dynamic_cast<CSprite *>( m_p2DObj->FindObjectFromName("Loading") );
	
	pSpr->SetDivnum( Math::Point2DI(6, 1) );
	
	pScene->GetAppDevice()->GetRenderer()->Clear();
	
	pScene->GetAppDevice()->GetRenderer()->Begin();
	
	pSpr->Rendering();
	
	//pScene->GetAppDevice()->GetRenderer()->DebugPrint( Math::Point2DI( 400, 300 ), CColor(255, 255, 255 ), "Npw Loading" );
	
	pScene->GetAppDevice()->GetRenderer()->End();

	pSpr->DrawAnimation( 6, 0 );
	
	/*ロード終わってない*/
	if( !pScene->GetLoadEndFlag() )
	{	
		static string Str = "Now Loading";
		
		static int count = 0;
		
		count ++;
		
		if( count % 10 == 0 )
		{
			Str += ".";
		}
		
		if( count >= 40 )
		{
			count = 0;
			Str = "Now Loading";
		}
		
		pRender->DrawText( Math::Point2DI( 590, 520 ), CColor(255, 255, 255 ), Str.c_str() );
		
		
	}
	
	/*ロード終了*/
	if( pScene->GetLoadEndFlag() )
	{
		pSpr->SetVisibleFlag( false );
		
		m_p3DObj->Init();
		
		CCamera *objCamMain	= dynamic_cast<CCamera *>( m_pGameObj->FindObjectFromName("CamMain") );
		
		objCamMain->Init();
		
		pSpr->Move();
		
		/*キャラが画面外にいったら、次のシーンに*/
		if( pSpr->GetPosition().x <= -100 )
		{
			#if defined( DEBUG_MAP_EDIT ) 
			
				m_eNextScene = SCENE_GAMEMAIN;
			
			
			#elif defined( DEBUG_MAP_SEE )
			
				m_eNextScene = SCENE_DEMO;
				
			#elif defined( DEBUG_CHAT )
			
				m_eNextScene = SCENE_CHAT;
				
			#endif
			
			pScene->SetSceneState( STATE_STANDBY );
			
			pScene->ChangeScene( m_eNextScene );
		}
		
	}
	
}