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