Ejemplo n.º 1
0
void FightLayer::initCard(){
    
    auto fightBackground = Sprite::create("textures/IMG_Background/fight_background.png");
    auto cs = fightBackground->getContentSize();
    
    _bgSize = cs;
    _nFight = LayerColor::create(Color4B(255,0,0,0),cs.width,cs.height);
    _nFight->setAnchorPoint(Point(0.5,0));

    _animalNode = Node::create();
    
    auto p = VisibleRect::topRight()-Point(cs.width,cs.height);
    _nFight->setPosition(p.x/2,p.y/2);
    _animalNode->setPosition(Point(cs.width/2,cs.height/2)+Point(p.x/2,p.y/2));
    
    addChild(_nFight);
    addChild(_animalNode);
    
    auto node = Node::create();
    node->setPosition(cs.width/2,cs.height/2);
    node->addChild(fightBackground);
    _nFight->addChild(node);

    for(auto id=0;id<_myVec.size();id++){
        
        auto myCard = _myVec.at(id);
        auto scale = myCard->getScaleX();
        node->addChild(myCard);
        auto myAn = myCard->getAnimal()->getThisLayer();
        
        auto dcp = myCard->getPosition();
        auto dp = myAn->getPosition();
        auto np = dcp + Point(0, dp.y*scale);
        
        auto nd = Node::create();
        myAn->setScale(scale);
        myAn->setPosition(myAn->getPosition().x,0);
        nd->addChild(myAn);
        
        updatePoint(nd, np);
        _animalNode->addChild(nd);
    }
    
    for(auto ic = 0;ic<_monsterVec.size();ic++){
        
        auto msCard = _monsterVec.at(ic);
        auto cScale = msCard->getScaleX();
        node->addChild(msCard);
        auto msAn = msCard->getAnimal()->getThisLayer();
        
        auto cDcp = msCard->getPosition();
        auto cDp = msAn->getPosition();
        auto dNp = cDcp+Point(0,cDp.y*cScale);
        
        auto cNd = Node::create();
        msAn->setScale(cScale);
        msAn->setPosition(msAn->getPositionX(),0);
        cNd->addChild(msAn);
        
        updatePoint(cNd, dNp);
        _animalNode->addChild(cNd);
    }
}
Ejemplo n.º 2
0
bool JumpableMovement :: move (  int dy , int dx )
{
     if( getAnimal()->getBoard() == NULL )
         cout << "BOARD NULL ERROR !" <<endl ; 
     else
     {
          int x = getAnimal()->getPosX() ; 
          int y = getAnimal()->getPosY() ; 
     
          if( y + dy < 0 || y + dy > 8 || x + dx < 0 || x + dx > 8   )
              return false ; 
         
          
            if( getAnimal()->getBoard() -> getItem( y + dy , x + dx ) -> getItemNo() == 1 )
             {
                 if( dy != 0 && dx == 0)
                 {
                   getAnimal()->setX ( x + dx * 4 ) ; 
                   getAnimal()->setY ( y + dy * 4 ) ;
                 }
                 else if ( dy == 0 && dx != 0 )
                 {
                   getAnimal()->setX ( x + dx * 3  ) ; 
                   getAnimal()->setY ( y + dy * 3  ) ;
                 }
                 
             }               
             else if( getAnimal()->getBoard() -> getItem( y + dy , x + dx ) -> getItemNo() != 1)
             {
                  getAnimal()->setX ( x + dx ) ; 
                  getAnimal()->setY ( y + dy ) ;
                  
             }
             
     }  
}