本文整理汇总了C++中CScene::FindPictureObject方法的典型用法代码示例。如果您正苦于以下问题:C++ CScene::FindPictureObject方法的具体用法?C++ CScene::FindPictureObject怎么用?C++ CScene::FindPictureObject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CScene
的用法示例。
在下文中一共展示了CScene::FindPictureObject方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnShow
//// OnShow() ////
void CArkanoidController::OnShow()
try {
#if DEBUG==1
time_t startT = time(NULL);
exceptPrintFile << asctime(localtime(&startT))<< " < << <<< <<<< <<<<< <<<<<< GAME START {i.e. `OnShow()` started working} >>>>>> >>>>> >>>> >>> >> >" << std::endl;
#endif
m_fSceneHeight = CRender::GetInst().GetHeight()/*768*/;
m_fSceneWidth = CRender::GetInst().GetWidth()/*1024*/;
CScene *sc = m_scene; //@@ ?: д/ более простой изменяемости?? (а надо ли? - может просто `m_scene` использовать)
m_pPad = sc->FindPictureObject(PIC_SC01_PADDLE);
//#OUTDATED (Видимо не нужен): g_pBall = sc->FindPictureObject(PIC_SC01_BALL); ///@@@ Видимо не нужен
//Готовлю array-входн.пар-р для C-tor'а CBallsManager. //Вынес этот код сюда, чтобы уйти от зависимости класса CBallsManager ..
{ //.. от кол-ва видов шариков и конкретных их объектов.
std::vector<CPictureObject*> vpBallPicObjs;
vpBallPicObjs.push_back(sc->FindPictureObject(PIC_SC01_BALL));
vpBallPicObjs.push_back(sc->FindPictureObject(PIC_SC01_BALL2));
vpBallPicObjs.push_back(sc->FindPictureObject(PIC_SC01_BALL3));
vpBallPicObjs.push_back(sc->FindPictureObject(PIC_SC01_BALL4));
//Создаю менеджер шариков:
m_pBallsMngr = new CBallsManager(vpBallPicObjs); //conditional delete is in D-tor.
}
//Создаю менеджер кирпичей:
m_pBricksMngr = new /*_BRICK_MNGR*/CBricksManager(/*12*/NUMBER_OF_BRICKS); ///@@ Передаю маг.числом, НО не держу лишнюю глоб.переменную. Верно? //Это что? Типа БРИКС_ОН_ЛВЛ ? (вроде да, therefore заменил `12` на NUMBER_OF_BRICKS)
//#OUTDATED (метод уже перекочевал в CBall и вызывается в C-tor'e):
//InitBallHitChckPntsArr();
//#OUTDATED: InitOfBallsPictObjects(sc); //инициализирую массив CPict.Object'ов шариков
//#OUTDATED: CPictureObject* pOriBall = sc->FindPictureObject(PIC_SC01_BALL); ///@@@ может вынести в глоб. vars (тем более, если его, как и oriBrick не задейтсвовать в самой игре
m_fPaddleY1 = m_fSceneHeight - m_fBOTTOM_GAP - (u32)m_pPad->GetSize().y; //#COMPILER(Warning) `(u32)`
m_fCurrPaddleY = m_fPaddleY1;
//#OUTDATED: g_fMaxDltYWithPad = m_pPad->GetCenter().y - pOriBall->GetCenter().y; //if(ball[i]..->GetPos().y > g_fPaddleY+g_fMaxDltYWithPad) ..
// //.. то больше не просчитывать IsHit() с Pad'ом.
std::srand((int)time(NULL)); //для того, чтобы rand() выдавал не одно и то же
//#OUTDATED: _BALL::InitFewPixelsShift(); //OLD: Инициализирую таблицу 1-(2-3..)-пиксельных смещений шарика при контакте. //@@ перенёс вызов в C-tor шарика (в условный блок, исполняемый только при cre. 1го шарика)
InitNewGame(sc);
}
示例2: OnRender
EXCPTN_CATCH
//// OnRender() ////
void CArkanoidController::OnRender(vector2 _scroll) ///@@@ Быть может нужно как-то исп-ть этот пар-р: Warning C4100: '_scroll' : unreferenced formal parameter 330
try {
LOG_INFO("CArkanoidController::OnRender");
vector2 pos = CCursorController::GetInst().GetCursorPos();
CScene *sc = m_scene; ///@@@ /*+см.в кажд.методе эту же строку*/ зачем каждый рендер создавать этот ptr заново? Может его передавать пар-ром, или сделать static'ом? Хотя ск.вс., т.к. m_scene - это, должно быть, верхняя (активная) (хотя написано в доках, что это материнская сцена). Ну короче м/у рендерами может она видимо измениься. Поэтому обновляем. ??
////Вызываю метод, отыгрывающий анимацию уничтожения в 1й проход и удаляющий объект во второй
//for (char i=m_vpBricks.size()-1; i>=0; --i) //Костыли: переносил это в OnUpdate() - не помогло
//{
// if (m_vpBricks[i]->m_state == CBrick::DSTR_ST || m_vpBricks[i]->m_state == CBrick::DSTR_EN)
// DelBrick(i, sc);
//}
ProcessWinLostState(sc); ///@@@ #TODO: кажд.рендер прогоняем эти проверки. Быть может заменить проверкой единств-го флага "Что-то изменилось с game_state'ом". И только if `true`, то гонять этот метод?
Print("SCORE: ", m_uGameScore, 15,m_fSceneWidth-100, 240,10,240,100);
#if DEBUG==1
CPictureObject* ball1 = sc->FindPictureObject(PIC_SC01_BALL);
//dbgPrint("rndmAng1 = ", dbgTmp0, 10,10, 255,10,255);
if (!m_pBallsMngr->IsBallsEmpty())
DbgPrint("currBallFi = ", m_pBallsMngr->GetBallFi(0)/*m_vBalls[0]->GetFi()*/, 10,200, 255,10,255); ///@@: Тут подчёркивание - /*возможно*/НЕ ошибка КОМП-ра, /*т.к.*/то, что я объявил френдом метод, ДАЁТ ДОСТУП К ЗАКРЫТЫМ ДАННЫМ _ВНУТРИ_ ф-ции, НО НЕ В СПИСКЕ ЕЁ ПАР-РОВ!
DbgPrint("currMouse X : Y = ", pos.x, pos.y, " : ", 25,10, 10,10,10);
DbgPrint("ball1->GetPos().x : .y ", ball1->GetPos().x, ball1->GetPos().y, " : ", 300);
//dbgPrint("rand()%... : ", dbgTmp6, 355,10, 50,50,1);
#endif
//Костыли: перенёс сюда из OnUpdate()
//Провека коллизий и пересчёт траекторий ///@@ Stoped_here 2014/09/16
m_pBallsMngr->ProcessIsHit(m_pPad, m_pBricksMngr->GetLavBricksPtr(), m_fSceneWidth, m_GameState);
}