Advertisement
kamakwazee

LevelOneScene.cpp 2.0

Jul 25th, 2013
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.95 KB | None | 0 0
  1. #include "LevelOneScene.h"
  2. #include "LevelSelectScene.h"
  3. #include "MainScene.h"
  4. #include <iostream>
  5. #include <sstream>
  6. #include <cmath>
  7.  
  8.  
  9. using namespace cocos2d;
  10. using namespace std;
  11.  
  12. int _tags[5] = {0,0,0,0,0};
  13. int _times[5] = {0,3,6,9,12};
  14. int arrayLength = 5;
  15. int currentIndex;
  16. float _time;
  17.  
  18. bool LevelOneScene::init()
  19. {
  20.     if(CCScene::init())
  21.     {
  22.         this->_layer = LevelOneLayer::create();
  23.         this->_layer->retain();
  24.         this->addChild(_layer);
  25.        
  26.         return true;
  27.     }
  28.     else
  29.     {
  30.         return false;
  31.     }
  32. }
  33.  
  34. LevelOneScene::~LevelOneScene()
  35. {
  36.     if(_layer)
  37.     {
  38.         _layer->release();
  39.         _layer = NULL;
  40.     }
  41. }
  42.  
  43. LevelOneLayer::LevelOneLayer()
  44. :_obstaclesOnScreen(NULL)
  45. {
  46. }
  47.  
  48. LevelOneLayer::~LevelOneLayer()
  49. {
  50.    
  51. }
  52.  
  53. bool LevelOneLayer::init()
  54. {
  55.     if(CCLayerColor::initWithColor(ccc4(255,255,255,255)))
  56.     {
  57.         CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
  58.         CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
  59.         CCSprite *player = CCSprite::create("stickGuy.png", CCRectMake(0,0,50,100));
  60.         player->setPosition(ccp(origin.x + (visibleSize.width/2) - (player->getContentSize().width/2),
  61.                                 origin.y + (player->getContentSize().height/2)));
  62.         this->addChild(player);
  63.        
  64.         _time = 0;
  65.         currentIndex = 0;
  66.        
  67.         this->setTouchEnabled(true);
  68.        
  69.         this->schedule(schedule_selector(LevelOneLayer::updateGame));
  70.        
  71.         return true;
  72.     }
  73.     else
  74.     {
  75.         return false;
  76.     }
  77. }
  78.  
  79. void LevelOneLayer::ccTouchesEnded(CCSet *touches, CCEvent *event)
  80. {
  81.     LevelSelectScene *levelSelectScene = LevelSelectScene::create();
  82.     CCDirector::sharedDirector()->replaceScene(levelSelectScene);
  83. }
  84.  
  85. void LevelOneLayer::spriteMoveFinished(CCNode *sender)
  86. {
  87.     CCSprite *sprite = (CCSprite*) sender;
  88.     this->removeChild(sprite, true);
  89.     _obstaclesOnScreen->removeObject(sprite);
  90. }
  91.  
  92. void LevelOneLayer::updateGame(float dt)
  93. {
  94.     _time += dt;
  95.     int itime = (int) floor(_time);
  96.     int inc = 0;
  97.     CCSprite *obstacle;
  98.    
  99.     bool obstacleSet = false;
  100.    
  101.     for(int i = 0; i < arrayLength; i++)
  102.     {
  103.         if(itime == _times[i])
  104.         {
  105.             if(_tags[i] == 0)
  106.             {
  107.                 obstacle = CCSprite::create("stickGuy.png", CCRectMake(0,0,50,100));
  108.             }
  109.             obstacleSet = true;
  110.         }
  111.     }
  112.    
  113.     if(obstacleSet)
  114.     {
  115.         CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
  116.         CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
  117.         int Y = origin.y + (visibleSize.height/2);
  118.         int X = origin.x + visibleSize.width + obstacle->getContentSize().width/2;
  119.        
  120.         obstacle->setPosition(ccp(X, Y));
  121.        
  122.         CCFiniteTimeAction *actionMove = CCMoveTo::create(1000.0, ccp(0 - obstacle->getContentSize().width/2, Y));
  123.        
  124.         CCFiniteTimeAction *actionMoveDone = CCCallFuncN::create(this, callfuncN_selector(LevelOneLayer::spriteMoveFinished));
  125.        
  126.         this->addChild(obstacle);
  127.        
  128.         obstacle->runAction(CCSequence::create(actionMove, actionMoveDone, NULL));
  129.         obstacle->setTag(_tags[currentIndex]);
  130.         _obstaclesOnScreen->addObject(obstacle);
  131.         //currentIndex++;
  132.     }
  133.    
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement