Chromium Code Reviews| Index: nacltoons/src/game_manager.cc |
| diff --git a/nacltoons/src/game_manager.cc b/nacltoons/src/game_manager.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c942c23b747bda86153b22eba288b1e7692851c3 |
| --- /dev/null |
| +++ b/nacltoons/src/game_manager.cc |
| @@ -0,0 +1,61 @@ |
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| +#include "game_manager.h" |
| +#include "level_layer.h" |
| +#include "ui_layer.h" |
| + |
| +USING_NS_CC; |
| + |
| +GameManager* GameManager::sharedManager() |
| +{ |
| + static GameManager* shared_manager = NULL; |
| + if (!shared_manager) |
| + shared_manager = new GameManager(); |
| + return shared_manager; |
| +} |
| + |
| +void GameManager::CreateLevel(CCScene* scene) |
| +{ |
| + CCLayer* physics = LevelLayer::create(level_number_); |
|
noelallen1
2013/03/09 01:20:37
level?
Sam Clegg
2013/03/09 01:35:13
Done.
|
| + scene->addChild(physics, 1, TAG_LAYER_LEVEL); |
| +} |
| + |
| +void GameManager::Restart(CCScene* scene) |
| +{ |
| + scene->removeChild(scene->getChildByTag(TAG_LAYER_LEVEL)); |
| + scene->removeChild(scene->getChildByTag(TAG_LAYER_OVERLAY)); |
| + CreateLevel(scene); |
| +} |
| + |
| +void GameManager::LoadLevel(int level_number) |
| +{ |
| + CCDirector* director = CCDirector::sharedDirector(); |
| + CCTransitionScene* transition; |
| + level_number_ = level_number; |
| + CCScene* scene = CCScene::create(); |
| + CCLayer* ui = UILayer::create(); |
|
noelallen1
2013/03/09 01:20:37
How does the ui layer get populated?
Sam Clegg
2013/03/09 01:35:13
It self-populates on init().
In cocos there seem
|
| + scene->addChild(ui, 3, TAG_LAYER_UI); |
| + |
| + CreateLevel(scene); |
| + |
| + director->setDepthTest(true); |
| + transition = CCTransitionPageTurn::create(1.0f, scene, false); |
| + director->pushScene(transition); |
| +} |
| + |
| +void GameManager::GameOver(CCScene* scene, bool success) { |
| + CCSize visible_size = CCDirector::sharedDirector()->getVisibleSize(); |
| + |
| + // Create a black overlay layer with success/failure message |
| + CCLayer* overlay = CCLayerColor::create(ccc4(0x0, 0x0, 0x0, 0x0)); |
| + const char* text = success ? "Success!" : "Failure!"; |
| + CCLabelTTF* label = CCLabelTTF::create(text, "Arial.ttf", 24); |
| + label->setPosition(ccp(visible_size.width/2, visible_size.height/2)); |
| + overlay->addChild(label); |
| + scene->addChild(overlay, 2, TAG_LAYER_OVERLAY); |
| + |
| + // Face the overlay layer into to 50% |
| + CCActionInterval* fadein = CCFadeTo::create(0.5f, 0x7F); |
| + overlay->runAction(fadein); |
| +} |