Advertisement
kamakwazee

LevelOneScene.cpp

Jul 21st, 2013
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.37 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. vector<int> _times;
  13. float _time;
  14.  
  15. bool LevelOneScene::init()
  16. {
  17.     if(CCScene::init())
  18.     {
  19.         this->_layer = LevelOneLayer::create();
  20.         this->_layer->retain();
  21.         this->addChild(_layer);
  22.        
  23.         return true;
  24.     }
  25.     else
  26.     {
  27.         return false;
  28.     }
  29. }
  30.  
  31. LevelOneScene::~LevelOneScene()
  32. {
  33.     if(_layer)
  34.     {
  35.         _layer->release();
  36.         _layer = NULL;
  37.     }
  38. }
  39.  
  40. LevelOneLayer::LevelOneLayer()
  41. :_obstacles(NULL)
  42. {
  43. }
  44.  
  45. LevelOneLayer::~LevelOneLayer()
  46. {
  47.     if(_label)
  48.     {
  49.         _label->release();
  50.         _label = NULL;
  51.     }
  52. }
  53.  
  54. bool LevelOneLayer::init()
  55. {
  56.     if(CCLayerColor::initWithColor(ccc4(255,255,255,255)))
  57.     {
  58.         activeObstacle = NULL;
  59.         CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
  60.         CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
  61.         CCSprite *player = CCSprite::create("stickGuy.png", CCRectMake(0,0,50,100));
  62.         player->setPosition(ccp(origin.x + (visibleSize.width/2) - (player->getContentSize().width/2),
  63.                                 origin.y + (player->getContentSize().height/2)));
  64.         this->addChild(player);
  65.        
  66.         CCSprite *obstacleOne = CCSprite::create("stickGuy.png", CCRectMake(0,0,50,100)); //Name and size will most likely change
  67.         obstacleOne->setTag(0);
  68.         _obstacles = new CCArray;
  69.        
  70.         int t = 3;
  71.         for(int i = 0; i < 10; i++)
  72.         {
  73.             _obstacles->addObject(obstacleOne);
  74.             _times.push_back(i * t);
  75.         }
  76.        
  77.         _time = 0;
  78.        
  79.         this->_label = CCLabelTTF::create("0.0", "Artial", 32);
  80.         _label->retain();
  81.         _label->setColor(ccc3(0,0,0));
  82.         _label->setPosition( ccp(visibleSize.width/2, visibleSize.height/2) );
  83.         this->addChild(_label);
  84.        
  85.         this->setTouchEnabled(true);
  86.        
  87.         this->schedule(schedule_selector(LevelOneLayer::updateGame));
  88.        
  89.         return true;
  90.     }
  91.     else
  92.     {
  93.         return false;
  94.     }
  95. }
  96.  
  97. void LevelOneLayer::ccTouchesEnded(CCSet *touches, CCEvent *event)
  98. {
  99.     LevelSelectScene *levelSelectScene = LevelSelectScene::create();
  100.     CCDirector::sharedDirector()->replaceScene(levelSelectScene);
  101. }
  102.  
  103. void LevelOneLayer::spriteMoveFinished(CCNode *sender)
  104. {
  105.     CCSprite *sprite = (CCSprite*) sender;
  106.     this->removeChild(sprite, true);
  107. }
  108.  
  109. void LevelOneLayer::updateGame(float dt)
  110. {
  111.     _time += dt;
  112.     int itime = (int) floor(_time);
  113.     CCString *s = CCString::createWithFormat("%d", itime);
  114.     _label->setString(s->getCString());
  115.     int inc = 0;
  116.     CCObject *obstacle;
  117.    
  118.     bool obstacleSet = false;
  119.     CCARRAY_FOREACH(_obstacles, obstacle)
  120.     {
  121.         if(itime == _times.at(inc))
  122.         {
  123.             activeObstacle = dynamic_cast<CCSprite*>(obstacle);
  124.             obstacleSet = true;
  125.             _label->setString("obstacle set");
  126.         }
  127.         inc++;
  128.     }
  129.    
  130.     if(obstacleSet)
  131.     {
  132.         _label->setString("if statement");
  133.         CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
  134.         CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
  135.         int Y = origin.y + (visibleSize.height/2);
  136.         int X = origin.x + visibleSize.width;
  137.        
  138.         activeObstacle->setPosition(ccp(X, Y));
  139.        
  140.         CCFiniteTimeAction *actionMove = CCMoveTo::create(2.0, ccp(0 - activeObstacle->getContentSize().width/2, Y));
  141.        
  142.         CCFiniteTimeAction *actionMoveDone = CCCallFuncN::create(this, callfuncN_selector(LevelOneLayer::spriteMoveFinished));
  143.        
  144.         activeObstacle->runAction(CCSequence::create(actionMove, actionMoveDone, NULL));
  145.     }
  146.    
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement