OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 #include "game_manager.h" |
| 5 #include "level_layer.h" |
| 6 #include "ui_layer.h" |
| 7 |
| 8 USING_NS_CC; |
| 9 |
| 10 GameManager* GameManager::sharedManager() |
| 11 { |
| 12 static GameManager* shared_manager = NULL; |
| 13 if (!shared_manager) |
| 14 shared_manager = new GameManager(); |
| 15 return shared_manager; |
| 16 } |
| 17 |
| 18 void GameManager::CreateLevel(CCScene* scene) |
| 19 { |
| 20 CCLayer* level = LevelLayer::create(level_number_); |
| 21 scene->addChild(level, 1, TAG_LAYER_LEVEL); |
| 22 } |
| 23 |
| 24 void GameManager::Restart(CCScene* scene) |
| 25 { |
| 26 scene->removeChild(scene->getChildByTag(TAG_LAYER_LEVEL)); |
| 27 scene->removeChild(scene->getChildByTag(TAG_LAYER_OVERLAY)); |
| 28 CreateLevel(scene); |
| 29 } |
| 30 |
| 31 void GameManager::LoadLevel(int level_number) |
| 32 { |
| 33 CCDirector* director = CCDirector::sharedDirector(); |
| 34 CCTransitionScene* transition; |
| 35 level_number_ = level_number; |
| 36 CCScene* scene = CCScene::create(); |
| 37 CCLayer* ui = UILayer::create(); |
| 38 scene->addChild(ui, 3, TAG_LAYER_UI); |
| 39 |
| 40 CreateLevel(scene); |
| 41 |
| 42 director->setDepthTest(true); |
| 43 transition = CCTransitionPageTurn::create(1.0f, scene, false); |
| 44 director->pushScene(transition); |
| 45 } |
| 46 |
| 47 void GameManager::GameOver(CCScene* scene, bool success) { |
| 48 CCSize visible_size = CCDirector::sharedDirector()->getVisibleSize(); |
| 49 |
| 50 // Create a black overlay layer with success/failure message |
| 51 CCLayer* overlay = CCLayerColor::create(ccc4(0x0, 0x0, 0x0, 0x0)); |
| 52 const char* text = success ? "Success!" : "Failure!"; |
| 53 CCLabelTTF* label = CCLabelTTF::create(text, "Arial.ttf", 24); |
| 54 label->setPosition(ccp(visible_size.width/2, visible_size.height/2)); |
| 55 overlay->addChild(label); |
| 56 scene->addChild(overlay, 2, TAG_LAYER_OVERLAY); |
| 57 |
| 58 // Face the overlay layer into to 50% |
| 59 CCActionInterval* fadein = CCFadeTo::create(0.5f, 0x7F); |
| 60 overlay->runAction(fadein); |
| 61 } |
OLD | NEW |