void BaseLevel::createEnemies(){
SpriteFrameCache::getInstance()->addSpriteFramesWithFile("enemies.plist", "enemies.png");
auto _gameBatchNode1 = SpriteBatchNode::create("enemies.png");
addChild(_gameBatchNode1);
auto enemyLayer = _map->getLayer("enemies");
auto layerSize = enemyLayer->getLayerSize();
for (int i = 0; i < layerSize.width; i++){
for (int j = 0; j < layerSize.height; j++){
auto GID = enemyLayer->getTileGIDAt(Point(i, j));
if (GID != 0) {
auto enemy = EnemyFactory::getInstance()->getEnemy(GID);
enemy->setPosition(tileCoordinateToCocosPosition(layerSize, Point(i, j)));
_gameBatchNode1->addChild(enemy);
}
}
}
//descarta esta capa
enemyLayer->getParent()->removeChild(enemyLayer);
}
Point BaseLevel::tileCoordinateToCocosPosition(Size layerSize, Point tileCoordinate){
//anchor point (0.5 0.5) -> layerSize.width / 2
float x = floor(layerSize.width / 2 * getScaleX() + tileCoordinate.x * _map->getTileSize().width * getScaleX());
//recuerda que el eje Y esta invertido
float y = floor(layerSize.height / 2 * getScaleY() + (layerSize.height-tileCoordinate.y) * _map->getTileSize().height * getScaleY());
//return a cocos 2d position
return Point(x, y);
}