Exemplo n.º 1
0
void ShaderBrush::loadShaderVertex(const std::string &vert, const std::string &frag)
{
	auto fileUtiles = FileUtils::getInstance();

	// frag
	auto fragmentFilePath = fileUtiles->fullPathForFilename(frag);
	auto fragSource = fileUtiles->getStringFromFile(fragmentFilePath);

	// vert
	std::string vertSource;
	if (vert.empty()) {
		//vertSource = ccPositionTextureColor_vert;
		vertSource = ccPositionTextureColor_noMVP_vert;
	}
	else {
		std::string vertexFilePath = fileUtiles->fullPathForFilename(vert);
		vertSource = fileUtiles->getStringFromFile(vertexFilePath);
	}

	auto glprogram = GLProgram::createWithByteArrays(vertSource.c_str(), fragSource.c_str());
	auto glprogramstate = GLProgramState::getOrCreateWithGLProgram(glprogram);
	
	// brush
	_brush = Sprite::create(NAME_BRUSH);
	_brush->retain();
	_blend = { GL_ONE, GL_ZERO };
	//_blend = BlendFunc{ GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA };
	_brush->setBlendFunc(_blend); 
	_brush->setGLProgramState(glprogramstate);

	auto s = Director::getInstance()->getVisibleSize();
	GLProgramState* pGLPS = _brush->getGLProgramState();
	pGLPS->setUniformVec2("resolution", Vec2(s)); 
}
Exemplo n.º 2
0
void Picking::displayIcon()
{
    auto fileU = FileUtils::getInstance();
    auto fileContent = fileU->getStringFromFile("data/animData.xml");

    UserDefault* def = UserDefault::getInstance();
    int key = def->getIntegerForKey(SaveDataKey[n_DataKeyNum::eMonsterData01 + m_battleNum].c_str());

    doc.Parse(fileContent.c_str());
    fileContent = fileU->getStringFromFile("data/monsterData.xml");
    mData.Parse(fileContent.c_str());

    m_HP = atoi(mData.FirstChildElement()->FirstChildElement(MonsterNameData[key].c_str())->FirstChildElement("HP")->GetText());
    auto sprite = doc.FirstChildElement()->FirstChildElement(MonsterNameData[key].c_str());


    key = def->getIntegerForKey(SaveDataKey[n_DataKeyNum::eEnemyMonster01 + m_battleNum].c_str());
    m_enemyHP = atoi(mData.FirstChildElement()->FirstChildElement(MonsterNameData[key].c_str())->FirstChildElement("HP")->GetText());


    //cut image to fit inside frame
    m_iconSprite = Sprite::create(sprite->FirstChildElement("spriteList")->FirstChildElement("animation")->FirstChildElement("stand")->GetText());
    m_iconSprite->setScale(m_Mag * 1.5);
    m_iconSprite->setPosition(Vec2((m_visibleSize.width / 6) * 1.8, m_visibleSize.height / 2));

    m_instance->addChild(m_iconSprite);
}
Exemplo n.º 3
0
void readBookFromFile(FILE *input, Book *book) {
    int id;
    int maxID = 0;
    bool unsorted = false;
    char *name, *number;
    while (!feof(input)) {
        fscanf(input, "%d", &id);
        name = getStringFromFile(input);
        number = getStringFromFile(input);
        if (name[0] == 0 || number[0] == 0) {
            free(name);
            free(number);
            continue;
        }
        if (!correctName(name) || !correctNumber(number)) {
            printf("ERROR: cannot getStringFromFile %d %s %s\n", id, name, number);
            free(name);
            free(number);
            return;
        }
        if (id < maxID)
            unsorted = true;
        appendBookID(book, name, number, id);
        maxID = max(id, maxID);
        free(name);
        free(number);
    }
    if (unsorted)
        qsort(book->contacts, book->size, sizeof(Contact), compareContacts);
    book->lastId = maxID;
}
Exemplo n.º 4
0
bool GLProgram::initWithFilenames(const std::string& vShaderFilename, const std::string& fShaderFilename, const std::string& compileTimeDefines)
{
    auto fileUtils = FileUtils::getInstance();
    std::string vertexSource = fileUtils->getStringFromFile(FileUtils::getInstance()->fullPathForFilename(vShaderFilename));
    std::string fragmentSource = fileUtils->getStringFromFile(FileUtils::getInstance()->fullPathForFilename(fShaderFilename));

    return initWithByteArrays(vertexSource.c_str(), fragmentSource.c_str(), compileTimeDefines);
}
Exemplo n.º 5
0
void DrawNode3D::loadShaderVertex(const std::string &vert, const std::string &frag)
{
    auto fileUtiles = FileUtils::getInstance();
    
    // frag
    auto fragmentFilePath = fileUtiles->fullPathForFilename(frag);
    auto fragSource = fileUtiles->getStringFromFile(fragmentFilePath);
    
    // vert
    auto vertexFilePath = fileUtiles->fullPathForFilename(vert);
    auto vertSource = fileUtiles->getStringFromFile(vertexFilePath);
    
    auto glprogram = GLProgram::createWithByteArrays(vertSource.c_str(), fragSource.c_str());
    auto glprogramstate = GLProgramState::getOrCreateWithGLProgram(glprogram);
    setGLProgramState(glprogramstate);
}
Exemplo n.º 6
0
bool FileUtilsTest::init()
{
	BackLayer::init();

	Size visibleSize = Director::getInstance()->getVisibleSize();

	auto fileutils = FileUtils::getInstance();
	//check file
	//实际上,读取的是编译后的目录,不是Resources下的
	if (fileutils->isFileExist("FileUtilsTest/hellotest.txt"))
	{
		log("test.txt is exist");
		//read file
		std::string ret;
		ret = fileutils->getStringFromFile("FileUtilsTest/hellotest.txt");
		log("content: %s", ret.c_str());
	}
	else
	{
		log("test.txt is not exist");
	}

	//读取中文字符的例子
	auto item = MenuItemFont::create("read chinese text", this, menu_selector(FileUtilsTest::onMenuCallBack));
	auto menu = Menu::create(item, nullptr);
	addChild(menu);
	
	return true;
}
Exemplo n.º 7
0
void Picking::displayEnemy()
{
    auto fileU = FileUtils::getInstance();
    auto fileContent = fileU->getStringFromFile("data/animData.xml");
    doc.Parse(fileContent.c_str());

    UserDefault* def = UserDefault::getInstance();
    enemyMonster = def->getIntegerForKey(SaveDataKey[(n_DataKeyNum::eEnemyMonster01) + m_battleNum].c_str());

    auto sprite = doc.FirstChildElement()->FirstChildElement(MonsterNameData[enemyMonster].c_str());

    /*
    //CARD on the center
    m_enemySpecial = Sprite::create("img/UI/battle/UI_B_12.png");
    m_enemySpecial->setScale(m_Mag * 0.8);
    m_enemySpecial->setPosition(Vec2(m_visibleSize.width / 2, m_visibleSize.height - m_enemySpecial->getBoundingBox().getMaxY() * 0.75));
    m_instance->addChild(m_enemySpecial);
    m_enemySpecial->setVisible(false); //hidden for animation
    */

    //Monster Sprite number 2
    m_enemyCard = Sprite::create(sprite->FirstChildElement("spriteList")->FirstChildElement("animation")->FirstChildElement("stand")->GetText());
    m_enemyCard->setScale(m_Mag * 1.5);
    m_enemyCard->setPosition(Vec2((m_visibleSize.width / 6) * 4.5, m_visibleSize.height /2));
    m_instance->addChild(m_enemyCard);

}
Exemplo n.º 8
0
void LevelLoader::loadJSONData(std::string const & filename)
{
	m_JSONData.clear();

	auto fileUtils = cocos2d::FileUtils::getInstance();
	// Loads all the data in the file into a std::string.
	m_JSONData = fileUtils->getStringFromFile(filename);
}
Exemplo n.º 9
0
void BattleFieldUI::setGrayShader(Sprite * avatar)
{//to turn the pictrue gray
	auto fileUtiles = FileUtils::getInstance();
	auto fragmentFullPath = fileUtiles->fullPathForFilename("shader3D/greyScale.fsh");
	auto fragSource = fileUtiles->getStringFromFile(fragmentFullPath);
	auto glprogram = cocos2d::GLProgram::createWithByteArrays(ccPositionTextureColor_noMVP_vert, fragSource.c_str());
	auto glprogramstate = cocos2d::GLProgramState::getOrCreateWithGLProgram(glprogram);
	avatar->setGLProgramState(glprogramstate);
}
 void ScoreProgressStart::setStartSpriteShader(const std::string & shader_path)
 {
     auto fileUtiles = cocos2d::FileUtils::getInstance();
     std::string fragmentFullPath = fileUtiles->fullPathForFilename(shader_path.c_str());
     std::string fragSource = fileUtiles->getStringFromFile(fragmentFullPath);
     cocos2d::GLProgram* shader_program = cocos2d::GLProgram::createWithByteArrays(cocos2d::ccPositionTextureColor_noMVP_vert, fragSource.c_str());
     cocos2d::GLProgramState* program_state = cocos2d::GLProgramState::getOrCreateWithGLProgram(shader_program);
     this->setGLProgramState(program_state);
 }
Exemplo n.º 11
0
bool BaseEffect3D::initGLProgramState(const std::string& vertFilename, const std::string& fragFilename)
{
    auto fileUtiles = FileUtils::getInstance();
    auto vertexFullPath = fileUtiles->fullPathForFilename(vertFilename);
    auto fragmentFullPath = fileUtiles->fullPathForFilename(fragFilename);
    auto vertSource = fileUtiles->getStringFromFile(vertexFullPath);
    auto fragSource = fileUtiles->getStringFromFile(fragmentFullPath);
    auto glprogram = GLProgram::createWithByteArrays(vertSource.c_str(), fragSource.c_str());
    
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
    m_strVertSource = vertSource;
    m_strFragSource = fragSource;
#endif
    
    m_pGLprogramstate = GLProgramState::getOrCreateWithGLProgram(glprogram);
    m_pGLprogramstate->retain();
    
    return m_pGLprogramstate != nullptr;
}
Exemplo n.º 12
0
void ShaderNode::loadShaderVertex(const std::string &vert, const std::string &frag)
{
    auto fileUtiles = FileUtils::getInstance();

    // frag
    auto fragmentFilePath = fileUtiles->fullPathForFilename(frag);
    auto fragSource = fileUtiles->getStringFromFile(fragmentFilePath);

    // vert
    std::string vertSource;
    if (vert.empty()) {
        vertSource = ccPositionTextureColor_vert;
    } else {
        std::string vertexFilePath = fileUtiles->fullPathForFilename(vert);
        vertSource = fileUtiles->getStringFromFile(vertexFilePath);
    }

    auto glprogram = GLProgram::createWithByteArrays(vertSource.c_str(), fragSource.c_str());
    auto glprogramstate = GLProgramState::getOrCreateWithGLProgram(glprogram);
    setGLProgramState(glprogramstate);
}
Exemplo n.º 13
0
bool Effect::initGLProgramState(const std::string &fragmentFilename)
{
    auto fileUtiles = FileUtils::getInstance();
    auto fragmentFullPath = fileUtiles->fullPathForFilename(fragmentFilename);
    auto fragSource = fileUtiles->getStringFromFile(fragmentFullPath);
    auto glprogram = GLProgram::createWithByteArrays(ccPositionTextureColor_noMVP_vert, fragSource.c_str());
    
    _glprogramstate = GLProgramState::getOrCreateWithGLProgram(glprogram);
    _glprogramstate->retain();
    
    return _glprogramstate != nullptr;
}
Exemplo n.º 14
0
/*----------------------------------------------------------------------*/
static int sourceFileNumber(char *fileName) {
    SourceFileEntry *entries = pointerTo(header->sourceFileTable);
    int n;

    for (n = 0; *(Aword*)&entries[n] != EOF; n++) {
        char *entryName;
        entryName = getStringFromFile(entries[n].fpos, entries[n].len);
        if (strcmp(entryName, fileName) == 0) return n;
        entryName = baseNameStart(entryName);
        if (strcmp(entryName, fileName) == 0) return n;
    }
    return -1;
}
Exemplo n.º 15
0
GLProgram* CustomFilter::loadShader()
{
    const GLchar* vertShader = nullptr;
    const GLchar* fragShader = nullptr;
    auto fileUtiles = FileUtils::getInstance();

    if (0 == m_vertFile.size()) {
        vertShader = ccPositionTextureColor_noMVP_vert;
    } else {
        auto vertFullPath = fileUtiles->fullPathForFilename(m_vertFile);
        auto vertSource = fileUtiles->getStringFromFile(vertFullPath);
        vertShader = vertSource.c_str();
    }
    
    auto fragmentFullPath = fileUtiles->fullPathForFilename(m_fragFile);
    auto fragSource = fileUtiles->getStringFromFile(fragmentFullPath);
    fragShader = fragSource.c_str();
    
    GLProgram* p = GLProgram::createWithByteArrays(vertShader, fragShader);

	return p;
}
Exemplo n.º 16
0
GLProgramState* Mx::getGLProgramState(string fragmentFilename){
    auto fileUtiles = FileUtils::getInstance();
    auto fragmentFullPath = fileUtiles->fullPathForFilename(fragmentFilename);
    auto fragSource = fileUtiles->getStringFromFile(fragmentFullPath);
    auto glprogram = GLProgram::createWithByteArrays(ccPositionTextureColor_noMVP_vert, fragSource.c_str());
    
    //#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
    //    _fragSource = fragSource;
    //#endif
    
    return GLProgramState::getOrCreateWithGLProgram(glprogram);
    
}
Exemplo n.º 17
0
void FileUtilsLayer::OnClickMenu3(Ref* pSender)
{
    auto sharedFileUtils = FileUtils::getInstance();
    std::string fullPathForFilename = sharedFileUtils->fullPathForFilename("test.txt");
    log("test.txt path = %s", fullPathForFilename.c_str());
    
    Data data = sharedFileUtils->getDataFromFile(fullPathForFilename);
    //Data构建string
    std::string content1 = std::string((const char*)data.getBytes(),0,data.getSize());
    log("content1 : %s",content1.c_str());
    std::string content2 = sharedFileUtils->getStringFromFile(fullPathForFilename);
    log("content2 : %s",content2.c_str());
}
Exemplo n.º 18
0
void AcceEffectSpace::initShaders()
{
    auto fileUtils = FileUtils::getInstance();
    auto vertSource = fileUtils->getStringFromFile("3d/acce.vsh");
    auto fragSource = fileUtils->getStringFromFile("3d/acce.fsh");

    auto glprogram = GLProgram::createWithByteArrays(vertSource.c_str(), fragSource.c_str());
    glprogram->bindAttribLocation("a_position", AcceEffectSpace::VERTEX_ATTRIB_POSITION);
    glprogram->bindAttribLocation("a_texcoord", AcceEffectSpace::VERTEX_ATTRIB_TEXCOORD);
    glprogram->link();
    glprogram->updateUniforms();

    _programState = GLProgramState::getOrCreateWithGLProgram(glprogram);
    _programState->retain();
}
Exemplo n.º 19
0
bool ShaderEffect::initWithFragmentFile(const char* fragmentFilename)
{
    auto fileUtiles = FileUtils::getInstance();
    auto fragmentFullPath = fileUtiles->fullPathForFilename(fragmentFilename);
    std::string fragSource="";
    if (fileUtiles->isFileExist(fragmentFullPath))
    {
        fragSource = fileUtiles->getStringFromFile(fragmentFullPath);
    }
    else
    {
        fragSource=ccPositionTextureColor_noMVP_frag;
    }
    return initWithFragmentSource(fragSource.c_str());
}
Exemplo n.º 20
0
void BattleHighNode::prepareShaders()
{
    auto fileUtils = FileUtils::getInstance();
    auto vertSource = fileUtils->getStringFromFile("3d/battle_high.vsh");
    auto fragSource = fileUtils->getStringFromFile("3d/battle_high.fsh");

    auto glprogram = GLProgram::createWithByteArrays(vertSource.c_str(), fragSource.c_str());
    glprogram->bindAttribLocation("a_positioin", MY_VERTEX_ATTRIB_POSITION);
    glprogram->bindAttribLocation("a_texcoord", MY_VERTEX_ATTRIB_TEXCOORD);
    glprogram->link();
    glprogram->updateUniforms();

    _programState = GLProgramState::getOrCreateWithGLProgram(glprogram);
    _programState->retain();
}
Exemplo n.º 21
0
void RoadNode::initShaders()
{
    if (_roadProgram) return;
    // Road
    {
        auto fileUtils = FileUtils::getInstance();
        auto vertSource = fileUtils->getStringFromFile("3d/road.vsh");
        auto fragSource = fileUtils->getStringFromFile("3d/road.fsh");

        auto glprogram = GLProgram::createWithByteArrays(vertSource.c_str(), fragSource.c_str());
        glprogram->bindAttribLocation("a_position", 0);
        glprogram->bindAttribLocation("a_texCoord", 1);
        glprogram->link();
        glprogram->updateUniforms();

        _roadProgram = glprogram;
        _roadProgram->retain();

        _roadTexture = Director::getInstance()->getTextureCache()->addImage("3d/road_shadow.png");
    }
    // Line
    {
        auto fileUtils = FileUtils::getInstance();
        auto vertSource = fileUtils->getStringFromFile("3d/road_line.vsh");
        auto fragSource = fileUtils->getStringFromFile("3d/road_line.fsh");

        auto glprogram = GLProgram::createWithByteArrays(vertSource.c_str(), fragSource.c_str());
        glprogram->bindAttribLocation("a_position", 0);
        glprogram->bindAttribLocation("a_texCoord", 1);
        glprogram->link();
        glprogram->updateUniforms();

        _lineProgram = glprogram;
        _lineProgram->retain();
    }
}
Exemplo n.º 22
0
void SimplePixelNode::prepareShaders()
{
    auto fileUtils = FileUtils::getInstance();
    auto vertSource = fileUtils->getStringFromFile("3d/simple_pixel.vsh");
    auto fragSource = fileUtils->getStringFromFile("3d/simple_pixel.fsh");

    auto glprogram = GLProgram::createWithByteArrays(vertSource.c_str(), fragSource.c_str());
    glprogram->bindAttribLocation("a_positioin", 0);
    glprogram->bindAttribLocation("a_color", 1);

    glprogram->link();
    glprogram->updateUniforms();

    _programState = GLProgramState::getOrCreateWithGLProgram(glprogram);
    _programState->retain();
}
Exemplo n.º 23
0
void ShadowCover::prepareShaders()
{
    auto fileUtils = FileUtils::getInstance();
    auto vertSource = fileUtils->getStringFromFile("3d/shadow_cover.vsh");
    auto fragSource = fileUtils->getStringFromFile("3d/shadow_cover.fsh");

    auto glprogram = GLProgram::createWithByteArrays(vertSource.c_str(), fragSource.c_str());
    glprogram->bindAttribLocation("a_positioin", 0);
    glprogram->bindAttribLocation("a_texcoord", 1);
    glprogram->bindAttribLocation("a_radio", 2);

    glprogram->link();
    glprogram->updateUniforms();

    _programState = GLProgramState::getOrCreateWithGLProgram(glprogram);
    _programState->retain();
}
Exemplo n.º 24
0
__Array* CSVParser::parse(const char* fileName)
{
	auto sharedFileUtils = FileUtils::getInstance();

	string pathKey = sharedFileUtils->fullPathForFilename(fileName);

	string content = sharedFileUtils->getStringFromFile(pathKey);
	__String* contentStr  = __String::create(content);

	__Array* rows = contentStr->componentsSeparatedByString("\n");

	__Array* ret = __Array::createWithCapacity(rows->count());

	Ref *obj = nullptr;
	CCARRAY_FOREACH(rows, obj)
	{
		auto fieldStr = static_cast<__String*>(obj);
		__Array* fields = fieldStr->componentsSeparatedByString(",");
		ret->addObject(fields);
	}
Exemplo n.º 25
0
void FileUtilsLayer::OnClickMenu6(Ref* pSender)
{
    
    auto sharedFileUtils = FileUtils::getInstance();
    
    sharedFileUtils->purgeCachedEntries();
    
    std::vector<std::string> searchPaths = sharedFileUtils->getSearchPaths();
    std::string writablePath = sharedFileUtils->getWritablePath();
    
    searchPaths.insert(searchPaths.begin(), "dir1");
    searchPaths.insert(searchPaths.begin()+1, writablePath);
    sharedFileUtils->setSearchPaths(searchPaths);
    
    std::string fullPathForFilename = sharedFileUtils->fullPathForFilename("test.txt");
    log("test.txt 's fullPathForFilename is : %s",fullPathForFilename.c_str());
    
    Data data = sharedFileUtils->getDataFromFile(fullPathForFilename);
    std::string content = sharedFileUtils->getStringFromFile(fullPathForFilename);
    log("File content is : %s",content.c_str());
}
Exemplo n.º 26
0
int main(int argc, char const *argv[]) {
    if (argc == 1) {
        printf("ERROR: the program takes one argument\n");
        return 0;
    }
    argv[1];

    Book *book = createBook();
    if( access( argv[1], R_OK ) != -1 ) {
        FILE *input = fopen(argv[1], "r");
        readBookFromFile(input, book);
        fclose(input);
    }

    sh_fileName = (char *) malloc(strlen(argv[1] + 1));
    strcpy(sh_fileName, argv[1]);
    sh_book = book;
    signal(SIGINT, signal_handler); 

    char command[10];
    char *name = NULL;   //(char *) malloc(sizeof(char)*80);
    char *number = NULL; // (char *) malloc(sizeof(char)*80);
    char *str = NULL;    //(char *) malloc(80);

    bool corName;
    bool corNumber;
    
    while (true) {
        corName = true;
        corNumber = true;
        scanf("%s", command);
        if(!strcmp(command, "debprint")) {
            fullPrint(book);
        } else if(!strcmp(command, "print")) {
            printBook(stdout, book);
        } else if(!strcmp(command, "find")) {
            str = getStringFromFile(stdin);
            if (correctName(str) || correctNumber(str))
                printFound(stdout, book, str);
            free(str);
        } else if(!strcmp(command, "create")) {
            name = getStringFromFile(stdin); number = getStringFromFile(stdin);
            corName = correctName(name);
            corNumber = correctNumber(number);
            if (correctName && correctNumber) {
                appendBook(book, name, number);
            }
            free(name); free(number);
        } else if(!strcmp(command, "delete")) {
            int id;
            scanf("%d", &id);
            removeContact(book, id);
        } else if(!strcmp(command, "change")) {
            int id;
            scanf("%d%s", &id, command);
            str = getStringFromFile(stdin);
            if(!strcmp(command, "number")) {
                corName = correctName(str);
                if (corName)
                    changeNumber(book, id, str);
            } else if (!strcmp(command, "name")) {
                corNumber = correctNumber(str);
                if (corNumber)
                    changeName(book, id, str);
            } else {
                printf("ERROR: Expected \"name\" or \"number\" after id in the command change\n");
            }
            free(str);
        } else if(!strcmp(command, "exit")) {
            FILE* output = fopen(argv[1], "w");
            printBook(output, book);
            fclose(output);
            deleteBook(book);
            break;
        } else {
            printf("ERROR: Unknown command %s\n", command);
        }
        if (!corName) {
            printf("ERROR: Invalid name\n");
        }
        if (!corNumber) {
            printf("ERROR: Invalid number\n");
        }
        fflush(stdout);
    }

    return 0;
}
Exemplo n.º 27
0
void Picking::randomize(int iterator)
{
    auto fileU = FileUtils::getInstance();
    auto fileContent = fileU->getStringFromFile("data/monsterData.xml");
    mData.Parse(fileContent.c_str());
    UserDefault* def = UserDefault::getInstance();
    int key = def->getIntegerForKey(SaveDataKey[n_DataKeyNum::eMonsterData01 + m_battleNum].c_str());

    int rockProb = atoi(mData.FirstChildElement()->FirstChildElement(MonsterNameData[key].c_str())->FirstChildElement("luck")->FirstChildElement("rock")->GetText());
    int sissorsProb = atoi(mData.FirstChildElement()->FirstChildElement(MonsterNameData[key].c_str())->FirstChildElement("luck")->FirstChildElement("sissors")->GetText());
    int paperProb = atoi(mData.FirstChildElement()->FirstChildElement(MonsterNameData[key].c_str())->FirstChildElement("luck")->FirstChildElement("paper")->GetText());
    //int monsterLevel = atoi(mData.FirstChildElement()->FirstChildElement(MonsterNameData[key].c_str())->FirstChildElement("special")->FirstChildElement("level")->GetText());

    int specialProb = rockProb + sissorsProb + paperProb;

    int randomNum = rand() % 100;
    if (randomNum < (100 - specialProb)) //------------------ normal card
    {
        randomNum = rand() % 3;
    }
    else if (randomNum >= (100 - specialProb)) //--------------------- super card
    {
        //randomNum = rand() % 3 + 3;
        randomNum = rand() % specialProb;
        if (randomNum <= rockProb)
        {
            randomNum = rand() % 10;
            if (randomNum < 7)
                randomNum = SUPER_ROCK;
            else
                randomNum = ULTRA_ROCK;
        }
        else if (randomNum <= (rockProb + sissorsProb) && randomNum > rockProb)
        {
            randomNum = rand() % 10;
            if (randomNum < 7)
                randomNum = SUPER_SISSORS;
            else
                randomNum = ULTRA_SISSORS;
        }
        else if (randomNum > (rockProb + sissorsProb))
        {
            randomNum = rand() % 10;
            if (randomNum < 7)
                randomNum = SUPER_PAPER;
            else
                randomNum = ULTRA_PAPER;
        }
        else //error case
            randomNum = rand() % 3;
    }
    else //error case
    {
        randomNum = rand() % 3;
    }

    switch (randomNum)
    {
    case ROCK:
        m_cards[iterator] = Sprite::create("img/UI/battle/UI_B_08.png");
        break;
    case SISSORS:
        m_cards[iterator] = Sprite::create("img/UI/battle/UI_B_09.png");
        break;
    case PAPER:
        m_cards[iterator] = Sprite::create("img/UI/battle/UI_B_10.png");
        break;
    case SUPER_ROCK:
        m_cards[iterator] = Sprite::create("img/UI/battle/UI_B_11.png");
        break;
    case SUPER_SISSORS:
        m_cards[iterator] = Sprite::create("img/UI/battle/UI_B_12.png");
        break;
    case SUPER_PAPER:
        m_cards[iterator] = Sprite::create("img/UI/battle/UI_B_13.png");
        break;
    case ULTRA_ROCK:
        m_cards[iterator] = Sprite::create("img/UI/battle/UI_B_11-G.png");
        break;
    case ULTRA_SISSORS:
        m_cards[iterator] = Sprite::create("img/UI/battle/UI_B_12-G.png");
        break;
    case ULTRA_PAPER:
        m_cards[iterator] = Sprite::create("img/UI/battle/UI_B_13-G.png");
        break;
    }

    m_cards[iterator]->setScale(m_Mag*0.5);
    m_cards[iterator]->setPosition(Vec2(m_visibleSize.width / 8 * (((iterator + 1) * 1.5) + 1), m_cards[iterator]->getBoundingBox().getMaxY()));
    m_cards[iterator]->setName("Cards" + Generic::intToStrnig(iterator));
    m_cards[iterator]->setZOrder(10);
    m_instance->addChild(m_cards[iterator]);
    cardData[iterator] = randomNum;
}
 void WebViewImpl::loadFile(const std::string &fileName) {
     auto fileUtiles = FileUtils::getInstance();
     auto fileFullPath = fileUtiles->fullPathForFilename(fileName);
     auto contentsString = fileUtiles->getStringFromFile(fileFullPath);
     loadHTMLString(contentsString, "text/html");
 }
Exemplo n.º 29
0
void Picking::setCards()
{
    string cardPath;

    auto fileU = FileUtils::getInstance();
    auto fileContent = fileU->getStringFromFile("data/monsterData.xml");
    mData.Parse(fileContent.c_str());
    UserDefault* def = UserDefault::getInstance();

    //-----------------------------------------------------------------------------------
    //Player Special Card
    //-----------------------------------------------------------------------------------

    int key = def->getIntegerForKey(SaveDataKey[n_DataKeyNum::eMonsterData01 + m_battleNum].c_str());

    int type = atoi(mData.FirstChildElement()->FirstChildElement(MonsterNameData[key].c_str())->FirstChildElement("special")->FirstChildElement("type")->GetText());
    int level = atoi(mData.FirstChildElement()->FirstChildElement(MonsterNameData[key].c_str())->FirstChildElement("special")->FirstChildElement("level")->GetText());

    if (type == ROCK)
    {
        if (level == 0)
        {
            //normal
            cardPath = "img/UI/battle/UI_B_08.png";
            m_specialType = ROCK;
        }
        else if (level == 1)
        {
            cardPath = "img/UI/battle/UI_B_11.png";
            m_specialType = SUPER_ROCK;
        }
        else
        {
            //super or ultra
            cardPath = "img/UI/battle/UI_B_11-G.png";
            m_specialType = ULTRA_ROCK;
        }
    }
    else if (type == SISSORS)
    {
        if (level == 0) //normal
        {
            cardPath = "img/UI/battle/UI_B_09.png";
            m_specialType = SISSORS;
        }
        else if (level == 1)
        {
            cardPath = "img/UI/battle/UI_B_12.png";
            m_specialType = SUPER_SISSORS;
        }
        else //super or ultra
        {
            cardPath = "img/UI/battle/UI_B_12-G.png";
            m_specialType = ULTRA_SISSORS;
        }

    }
    else if (type == PAPER)
    {
        if (level == 0) //normal
        {
            cardPath = "img/UI/battle/UI_B_10.png";
            m_specialType = PAPER;
        }
        else if (level == 1)
        {
            cardPath = "img/UI/battle/UI_B_13.png";
            m_specialType = SUPER_PAPER;
        }
        else //super or ultra
        {
            cardPath = "img/UI/battle/UI_B_13-G.png";
            m_specialType = ULTRA_PAPER;
        }

    }

    //render player special card
    m_specialCard = Sprite::create(cardPath);
    m_specialCard->setScale(m_Mag * 0.5);
    m_specialCard->setPosition(Vec2(m_specialCard->getBoundingBox().getMaxX() * 1.8, m_specialCard->getBoundingBox().getMaxY()));
    m_specialCard->setScale(m_Mag * 1.2);
    m_specialCard->setZOrder(10);
    m_instance->addChild(m_specialCard);

    auto smallenPlayer = ScaleTo::create(0.5, m_Mag*0.5);
    m_specialCard->runAction(Sequence::create(smallenPlayer, NULL));

    //-----------------------------------------------------------------------------------
    //Enemy Special Card
    //-----------------------------------------------------------------------------------
    key = def->getIntegerForKey(SaveDataKey[n_DataKeyNum::eEnemyMonster01 + m_battleNum].c_str());

    type = atoi(mData.FirstChildElement()->FirstChildElement(MonsterNameData[key].c_str())->FirstChildElement("special")->FirstChildElement("type")->GetText());
    level = atoi(mData.FirstChildElement()->FirstChildElement(MonsterNameData[key].c_str())->FirstChildElement("special")->FirstChildElement("level")->GetText());

    if (type == ROCK)
    {
        if (level == 0)
        {
            //normal
            cardPath = "img/UI/battle/UI_B_08.png";
            m_enemySpecialType = ROCK;
        }
        else if (level == 1) //super
        {
            cardPath = "img/UI/battle/UI_B_11.png";
            m_enemySpecialType = SUPER_ROCK;
        }
        else //ultra
        {
            cardPath = "img/UI/battle/UI_B_11-G.png";
            m_enemySpecialType = ULTRA_ROCK;
        }
    }
    else if (type == SISSORS)
    {
        if (level == 0) //normal
        {
            cardPath = "img/UI/battle/UI_B_09.png";
            m_enemySpecialType = SISSORS;
        }
        else if (level == 1) //super
        {
            cardPath = "img/UI/battle/UI_B_12.png";
            m_enemySpecialType = SUPER_SISSORS;
        }
        else //ultra
        {
            cardPath = "img/UI/battle/UI_B_12-G.png";
            m_enemySpecialType = ULTRA_SISSORS;
        }

    }
    else if (type == PAPER)
    {
        if (level == 0) //normal
        {
            cardPath = "img/UI/battle/UI_B_10.png";
            m_enemySpecialType = PAPER;
        }
        else if (level == 1) //super
        {
            cardPath = "img/UI/battle/UI_B_13.png";
            m_enemySpecialType = SUPER_PAPER;
        }
        else //ultra
        {
            cardPath = "img/UI/battle/UI_B_13-G.png";
            m_enemySpecialType = ULTRA_PAPER;
        }

    }

    //render enemy Special card
    m_enemySpecial = Sprite::create(cardPath);
    m_enemySpecial->setScale(m_Mag * 0.5);
    m_enemySpecial->setPosition(Vec2(m_visibleSize.width - m_enemySpecial->getBoundingBox().getMaxX() * 1.8, m_visibleSize.height - m_enemySpecial->getBoundingBox().getMaxY()));
    m_enemySpecial->setScale(m_Mag * 1.2);
    m_enemySpecial->setZOrder(10);
    m_instance->addChild(m_enemySpecial);

    auto smallenEnemy = ScaleTo::create(0.5, m_Mag*0.5);
    m_enemySpecial->runAction(Sequence::create(smallenEnemy, NULL));

    //-----------------------------------------------------------------------------------
    //Other Cards
    //-----------------------------------------------------------------------------------

    srand(time(NULL));
    for (int i = 0; i < 4; i++)
    {
        randomize(i);
        m_hiddenCards[i] = Sprite::create("img/UI/battle/UI_B_14.png");
        m_hiddenCards[i]->setPositionX(m_cards[i]->getPositionX() - 270);
        m_hiddenCards[i]->setScale(m_Mag*0.5);
        m_hiddenCards[i]->setPositionY(m_visibleSize.height - m_hiddenCards[i]->getBoundingBox().getMaxY());
        m_instance->addChild(m_hiddenCards[i]);
    }

    auto callback = CallFunc::create([this]() {
        this->displayUI();
    });

    MoveTo* appear[4];
    MoveTo* appearEnemy[4];
    for (int i = 0; i < 4; i++)
    {
        //player other cards animation
        appear[i] = MoveTo::create((4-i)*0.5, Vec2(m_cards[i]->getPosition().x, m_cards[i]->getPosition().y));
        auto wait = DelayTime::create(1.5);
        m_cards[i]->setPosition(m_cards[i]->getPosition().x, -m_cards[i]->getBoundingBox().getMaxY()*(4-i));
        if (i == 3)
            m_cards[i]->runAction(Sequence::create(appear[i], wait, callback, NULL));
        else
            m_cards[i]->runAction(appear[i]);

        //enemy other cards animation
        appearEnemy[i] = MoveTo::create(i * 0.5, Vec2(m_hiddenCards[i]->getPositionX(), m_hiddenCards[i]->getPositionY()));
        m_hiddenCards[i]->setPosition(m_hiddenCards[i]->getPositionX(), m_visibleSize.height + m_hiddenCards[i]->getBoundingBox().getMaxY() * i);
        m_hiddenCards[i]->runAction(appearEnemy[i]);
    }
}