//do initialization here void LCBattleScene::initView() { backGround = Sprite::create("BackGround.png"); //backGround->setScale(3); this->addChild(backGround); Size visibleSize = Director::getInstance()->getVisibleSize(); Point origin = Director::getInstance()->getVisibleOrigin(); backGround->setPosition(Point(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); lifeObj::setActiveRange(backGround->getContentSize()); lifeObj::setMap(backGround); createHero(); addMonster(3); hero->objList = monsterArr; __NotificationCenter::getInstance()->addObserver(this, callfuncO_selector(LCBattleScene::delteMonster), "delteMonster", NULL); schedule(schedule_selector(LCBattleScene::followHero), 3.0f, -1, 1); scheduleOnce(schedule_selector(LCBattleScene::test), 1); scheduleUpdate(); // schedule(, 2, 2); }
//do initialization here void LCBattleScene::initView() { createHero(); addMonster(3); schedule(schedule_selector(LCBattleScene::followHero), 3, kCCRepeatForever, 1); //this->schedule(); //schedule(schedule_selector(LCBattleScene::updatess), 2, kCCRepeatForever, 3); //this->scheduleUpdate(); //createHero(); //_root_elf_title->setString(Language("FORMATION$_TITLE")); //_root_elf_btn_back_normal_text->setString(Language("GLOBAL$_BTN_RETURN")); //_root_elf_btn_back_pressed_text->setString(Language("GLOBAL$_BTN_RETURN")); //_root_elf_upgrage_text->setString(Language("FORMATION$_UPGRADE")); //createTeam(); //_root_elf_startup->setTarget(this, menu_selector(LCBattleScene::enableClicked)); //_root_elf_upgrage->setTarget(this, menu_selector(LCBattleScene::upgradeClicked)); //_root_elf_btn_back->setTarget(this, menu_selector(LCBattleScene::backClicked)); //_root_walk->setTarget(this, menu_selector(LCBattleScene::actionWalk)); //_root_walk_des->setString("walk"); //_root_rush->setTarget(this, menu_selector(LCBattleScene::actionRusn)); //_root_jump->setTarget(this, menu_selector(LCBattleScene::actionJump)); //_root_attack->setTarget(this, menu_selector(LCBattleScene::actionAttack)); //_root_turn->setTarget(this, menu_selector(LCBattleScene::turnAround)); }
bool SceneGame::init() { LayerScrollBackGround::init(); _brainControlShow = BrainControl::create(); this->addChild(_brainControlShow); _brainControlShow->setZOrder(100); _nextAsteroid = 0; _nextUfo = 0; _nextShipLaser = 0; //把所有的图片存储在一张图片里面,然后使用这个 BatchNode //就可以仅使用一次 opengl 调用来做所有的绘图操作。 //使用一张大的图片创建一个 CCSpriteBatchNode 对象来批处理所有的对 //象的描绘操作。接收的参数是 Sprites.pvr.ccz。 _batchNode = SpriteBatchNode::create("SceneGame/ShipAsteroidStone.png"); this->addChild(_batchNode); SpriteFrameCache::getInstance()->addSpriteFramesWithFile("SceneGame/ShipAsteroidStone.plist"); //英雄飞船出场 createHero(); //使用粒子系统创建星星 createGrainStar(); //初始化星球 InitAsteroid(); //初始化陨石 InitStones(); InitUFO(); //初始化激光 InitShipLasers(); //加载游戏中需要用到的音乐 initAudio(); this->scheduleUpdate(); this->setAccelerometerEnabled(true); //设置重力感应 double curTime = getTimeTick(); _gameOverTime = curTime + 30000; _gameOver = false; _lives = _brainControlShow->_lives; return true; }
MainHero* ObjectFactory::createMainHero(const char* id) { MainHero* mainHero = MainHero::create(); HeroDTO* heroDTO = DataCollector::getInstance()->getHeroDTOByKey(id); if(heroDTO == NULL) { // NOT FOUND HERO assert(0); } createHero(mainHero, DataCollector::getInstance()->getHeroDTOByKey(id)); return mainHero; }
int main(void) { struct Hero mage = { "", MAGE, 450, 0, 50, 200, 30, 10, 1, 1, 0, 0, NULL, NULL }; struct Hero warrior = { "", WARRIOR, 550, 60, 0, 0, 5, 25, 1.3, 1, 0, 0, NULL, NULL }; struct Hero thief = { "", THIEF, 400, 60, 0, 0, 10, 15, 1, 1.2, 5, 0, NULL, NULL }; struct Hero bot1 = { "Mage", ANY, 500, 0, 45, 0, 15, 15, 1.4, 1.5, 10, 0, NULL, NULL }; struct Hero bot2 = { "Guard", ANY, 400, 65, 0, 0, 15, 35, 1.8, 1, 0, 0, NULL, NULL }; struct Hero bot3 = { "Black knight", ANY, 700, 100, 0, 0, 25, 25, 1, 1.2, 5, 0, NULL, NULL }; struct Hero * hero; struct Hero * bot = &(bot3); COORD posHead; int a; int b; int p = 0; int status = 0; int true = 0; const char * Interface[3] = { "New game", "Load", "Records" }; HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); metka: a = move (hConsole, 3, Interface, 7, hero, &(mage), &(warrior), &(thief)); switch (a){ case 0 : createHero(&(hero), &(mage), &(warrior), &(thief)); true = 1; break; case 1 : system("cls"); FILE * fp = NULL; printf("enter full name of file what you will open to load\n"); char str[30]; gets(str); fp = fopen(str, "r"); if (NULL == fp) status = 1; if (status == 0) { fscanf(fp, "%i", &(b)); switch (b) { case MAGE: hero = &(mage); break; case WARRIOR: hero = &(warrior); break; case THIEF: hero = &(thief); break; } int Weapon_type; int Armor_type; fscanf(fp, "%i %i %i", &(Weapon_type), &(Armor_type), &(hero->gold)); switch (Armor_type) { case -1: status = 1; break; case 6: hero->Armor = &(steel_armor); break; case 7: hero->Armor = &(mage_robe); break; case 8: hero->Armor = &(lether_armor); break; case 9: hero->Armor = &(dragon_armor); break; case 10: hero->Armor = &(arcgmage_robe); break; case 11: hero->Armor = &(elven_armor); break; } if (status != 1){ hero->health += hero->Armor->health; hero->damage += hero->Armor->damage; hero->mag_damage += hero->Armor->mag_damage; hero->mana += hero->Armor->mana; hero->magic_protect += hero->Armor->magic_protect; hero->armor += hero->Armor->armor; hero->critical_damage += hero->Armor->critical_damage - 1; hero->critical_chanse += hero->Armor->critical_chanse; } switch (Weapon_type) { case -1: status = -1; break; case 0: hero->Weapon = &(steel_sword); break; case 1: hero->Weapon = &(magic_stick); break; case 2: hero->Weapon = &(steel_dagger); break; case 3: hero->Weapon = &(great_sword); break; case 4: hero->Weapon = &(wood_scepter); break; case 5: hero->Weapon = &(thief_dagger); break; } if (status != -1){ hero->health += hero->Weapon->health; hero->damage += hero->Weapon->damage; hero->mag_damage += hero->Weapon->mag_damage; hero->mana += hero->Weapon->mana; hero->magic_protect += hero->Weapon->magic_protect; hero->armor += hero->Weapon->armor; hero->attack_speed = hero->Weapon->attack_speed; hero->critical_damage += hero->Weapon->critical_damage - 1; hero->critical_chanse += hero->Weapon->critical_chanse; } true = 1; } else printf("error input"); fclose(fp); break; case 2 : printRec(); goto metka;break; } while (true) { shop(hero, &(mage), &(warrior), &(thief)); true = battle(hero, &(bot1), &(bot2), &(bot3)); if (true == 2) ; else if (true) printf("WIN\n"); else printf("LOSE\n"); getchar(); } system("cls"); posHead.X = 34; posHead.Y = 10; SetConsoleCursorPosition(hConsole, posHead); SetConsoleTextAttribute(hConsole, FOREGROUND_RED); puts("GAME OVER"); posHead.Y = 11; SetConsoleCursorPosition(hConsole, posHead); printf("your result is %i", hero->gold); posHead.Y++; SetConsoleCursorPosition(hConsole, posHead); printf("enter your nickname\n"); char nick[20]; posHead.Y++; SetConsoleCursorPosition(hConsole, posHead); gets(nick); if (nick[0] == '\0') strcpy(nick, "noName"); int record[10]; char temp[10][20]; FILE * fp = NULL; fp = fopen("reclab4.txt", "r"); if (NULL == fp) return 0; for (int i = 0; i < 10; i++){ fscanf(fp, "%i %s", &record[i], temp[i]); //printf("%i. %8i %s\n", i + 1, record, nick); if (record[i] > hero->gold) p = i; } fclose(fp); fp = fopen("reclab4.txt", "w"); for (int i = 0; i < 10; i++){ if (p == i - 1) fprintf(fp, "%i %s\n", hero->gold, nick); fprintf(fp, "%i %s\n", record[i], temp[i]); } SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN); getchar(); fclose(fp); return EXIT_SUCCESS; }
void GameLevel::load(const std::string &levelFile) { unload(); std::string buffer = levelFile.empty() ? sTemplateMap : JsonParser::getBuffer(levelFile); if (buffer.empty()) { load(""); return; } JsonParser parser(buffer); if (!parser) { CCLOG("%s", buffer.c_str()); CCLOGERROR("Cannot load the level file: %s", levelFile.c_str()); } CCLOG("Loading level file: %s", levelFile.empty() ? "Template" : levelFile.c_str()); auto& doc = parser.getCurrentDocument(); std::string paletteFile = doc[LEVEL_PALETTE_FILE].GetString(); CC_SAFE_DELETE(mPalette); mPalette = new ColorPalette(paletteFile); // Shadows. if (doc.HasMember(SHADOW_GROUP)) { mNumShadowGroup = doc[SHADOW_GROUP].Size(); parser.parseArray(doc, SHADOW_GROUP, [&](JsonSizeT i, JsonValueT &val) { addShadowGroup(); mShadows[i]->load(val); initShadowGroup(i); }); } // Sprites. CC_ASSERT(mSpriteList.empty()); if (doc.HasMember(GAME_SPRITES)) { parser.parseArray(doc, GAME_SPRITES, [&](JsonSizeT i, JsonValueT &val) { mSpriteList.push_back(new GameSprite()); mSpriteList.back()->load(val); mGameLayer->getBlockRoot()->addChild(mSpriteList.back()->getSprite(), mSpriteList.back()->ZOrder); }); } // Effects. CC_ASSERT(mEffects.empty()); if (doc.HasMember(GAME_FX)) { parser.parseArray(doc, GAME_FX, [&](JsonSizeT i, JsonValueT &val) { mEffects.push_back(val.GetString()); }); } loadFx(); // Objects. mHeroSpawnPos = doc[LEVEL_SPAWN_POS].GetVec2(); createHero(mHeroSpawnPos); parser.parseArray(doc, LEVEL_BLOCK_ARRAY, [&](JsonSizeT i, JsonValueT& val) { mObjectManager->createObject(val); }); // Update shadow right after loading objects. for (auto sm : mShadows) { sm->update(0); } // Time events. CC_ASSERT(mTimeEvents.empty()); if (doc.HasMember(TIME_EVENTS)) { parser.parseArray(doc, TIME_EVENTS, [&](JsonSizeT i, JsonValueT &val) { auto timeEvent = new TimeEvent(); timeEvent->load(val); mTimeEvents.push_back(timeEvent); }); } updateBounds(); mBackground->clear(); mBackground->drawSolidRect({mBounds.getMinX(), mBounds.getMinY()}, {mBounds.getMaxX(), mBounds.getMaxY()}, Color4F(mPalette->getBackgroundColor())); setCurrentFile(levelFile); mGameLayer->afterLoad(); }
Hero* ObjectFactory::createHero(const char* id) { Hero* hero = Hero::create(); createHero(hero, DataCollector::getInstance()->getHeroDTOByKey(id)); return hero; }
Hero* ObjectFactory::createHero(HeroDTO* heroDTO, b2World* world, bool isLocal) { Hero* hero = Hero::create(); createHero(hero, heroDTO); return hero; }