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); |
+} |