//------------------------------------------------ //------------------------------------------------ void ScoringSystem::OnInit() { for(auto& score : m_scores) { score = 0; } auto entityFactory = GetState()->GetSystem<GameEntityFactory>(); auto scene = GetState()->GetScene(); const CSCore::Vector2 k_digitSize(20, 20); const f32 distanceFromGround = 6.0f; const f32 k_paddingFromCentre = 10.0f; CSCore::EntitySPtr player1TensEntity = entityFactory->CreateScoreSprite(k_digitSize, CSRendering::AlignmentAnchor::k_middleRight); m_scoreViews[0].first = player1TensEntity->GetComponent<CSRendering::SpriteComponent>(); player1TensEntity->GetTransform().SetPosition(-k_paddingFromCentre - k_digitSize.x, 0.0f, distanceFromGround); scene->Add(player1TensEntity); CSCore::EntitySPtr player1SinglesEntity = entityFactory->CreateScoreSprite(k_digitSize, CSRendering::AlignmentAnchor::k_middleRight); m_scoreViews[0].second = player1SinglesEntity->GetComponent<CSRendering::SpriteComponent>(); player1SinglesEntity->GetTransform().SetPosition(-k_paddingFromCentre, 0.0f, distanceFromGround); scene->Add(player1SinglesEntity); CSCore::EntitySPtr player2TensEntity = entityFactory->CreateScoreSprite(k_digitSize, CSRendering::AlignmentAnchor::k_middleLeft); m_scoreViews[1].first = player2TensEntity->GetComponent<CSRendering::SpriteComponent>(); player2TensEntity->GetTransform().SetPosition(k_paddingFromCentre, 0.0f, distanceFromGround); scene->Add(player2TensEntity); CSCore::EntitySPtr player2SinglesEntity = entityFactory->CreateScoreSprite(k_digitSize, CSRendering::AlignmentAnchor::k_middleLeft); m_scoreViews[1].second = player2SinglesEntity->GetComponent<CSRendering::SpriteComponent>(); player2SinglesEntity->GetTransform().SetPosition(k_paddingFromCentre + k_digitSize.x, 0.0f, distanceFromGround); scene->Add(player2SinglesEntity); }
//************************************************************************ void CNutDropScene::CreateSprites() //************************************************************************ { FNAME szFileName; POINT ptOrigin; ptOrigin.x = 0; ptOrigin.y = 0; // Create the object sprites for (int i = 0 ; i < MAX_PIECES ; i++) { if (m_ObjectList[i].m_szImage[0] != '\0') { m_ObjectList[i].m_lpSprite = m_pAnimator->CreateSprite (&ptOrigin); if (m_ObjectList[i].m_lpSprite) { GetPathName (szFileName, m_ObjectList[i].m_szImage); // Set up the sprite parameters m_ObjectList[i].m_lpSprite->AddCells (szFileName, m_ObjectList[i].m_nTotalCells, NULL); m_ObjectList[i].m_lpSprite->SetCellsPerSec (10); m_ObjectList[i].m_lpSprite->SetSpeed (m_nObjectSpeed); m_ObjectList[i].m_lpSprite->SetCycleBack (TRUE); m_ObjectList[i].m_lpSprite->Jump (0, 0); m_ObjectList[i].m_lpSprite->SetNotifyProc (OnSpriteNotify, (DWORD)this); m_ObjectList[i].m_lpSprite->Show (FALSE); } } } // Create the player sprite m_lpPlayerSprite = m_pAnimator->CreateSprite (&ptOrigin); if (m_lpPlayerSprite) { if (! m_nPlayerCells) m_nPlayerCells = 1; GetPathName (szFileName, m_szPlayerBmp); m_lpPlayerSprite->AddCells (szFileName, m_nPlayerCells, NULL); m_lpPlayerSprite->ActivateCells(0, (m_nPlayerCells/2)-1, YES); m_lpPlayerSprite->ActivateCells(m_nPlayerCells/2, m_nPlayerCells, NO); m_lpPlayerSprite->SetCellsPerSec (0); m_lpPlayerSprite->SetSpeed (m_nPlayerSpeed); m_lpPlayerSprite->Jump (m_nScreenLeftEdge, m_nScreenBottom); m_lpPlayerSprite->SetNotifyProc (OnSpriteNotify, (DWORD)this); m_lpPlayerSprite->Show (TRUE); } // Initially walking right m_WalkDir = WALKRIGHT; // Create the score sprites m_lpCaughtScore[0] = CreateScoreSprite (m_ptCaughtScore.x, m_ptCaughtScore.y, 10); m_lpCaughtScore[1] = CreateScoreSprite (m_ptCaughtScore.x + m_nScoreWidth, m_ptCaughtScore.y, 0); }