bool MainScene::init() { if (!Scene::init()) return false; if (initWithPhysics()) { Global *global = Global::getInstance(); //添加主层 MainLayer *mainLayer = MainLayer::create(); this->addChild(mainLayer); Size visibleSize = Director::getInstance()->getVisibleSize(); //在主层初始化前设置相机,并给主场景增加相机 global->multiBtn= MultiFuncButton::create(); global->multiBtn->setBoundingGear("images/bounding.png"); global->multiBtn->setDirGear("images/testUI01.png"); global->multiBtn->setPowerGear("images/testUI01.png"); global->multiBtn->setFireButton("images/button.png"); //还有一个装饰的大齿轮,素材没调好,不展示 global->multiBtn->setIsEnable(true); global->multiBtn->setStep(90.f); global->multiBtn->setScale(0.5f); global->multiBtn->setPosition(visibleSize.width - 80, visibleSize.height / 2 - 120);//位置调整要在后 this->addChild(global->multiBtn); Size size = Director::getInstance()->getWinSize(); global->_physics3DWorld = this->getPhysics3DWorld(); global->_camera = Camera::createPerspective(30.0f, size.width / size.height, 1.0f, 1000.0f); global->_camera->setPosition3D(Vec3(0.0f, 80.0f, 160.0f)); global->_camera->lookAt(Vec3(0.0f, 0.0f, 0.0f), Vec3(0.0f, 1.0f, 0.0f)); global->_camera->setCameraFlag(CameraFlag::USER1); this->addChild(global->_camera); setPhysics3DDebugCamera(global->_camera); _navMesh = NavMesh::create("mesh/all_tiles_tilecache.bin", "mesh/geomset.txt"); _navMesh->setDebugDrawEnable(true); setNavMesh(_navMesh); setNavMeshDebugCamera(global->_camera); //创建主角 // global->_playerObj = Player::create("model/girl.c3b"); } return true; }
void DetourComponent::loadFromXml(const XMLNode* node) { m_tempObRadius = (float)atof( node->getAttribute( "tempObsRadius", "1.0" ) ); m_tempObHeight = (float)atof( node->getAttribute( "tempObsHeight", "2.0" ) ); m_navMeshFilename = node->getAttribute( "NavMeshFile" ); if( m_navMeshFilename.empty() ) { GameLog::warnMessage( "DetourComponent: No navigation mesh file was specified" ); } else { setNavMesh(m_navMeshFilename); } }
bool CMainScene::init() { if (!Scene::init()) return false; Size winSize = Director::getInstance()->getWinSize(); //Should add gPlayer in version0.2, and use player's ID or name as identification //MainLayer & its attaches //create mainLayer m_mainLayer = MainLayer::create(); this->addChild(m_mainLayer); //在主层初始化前设置相机,并给主场景增加相机 Global* global = Global::getInstance(); global->multiBtn = MultiFuncButton::create(); global->multiBtn->setBoundingGear("images/bounding.png"); global->multiBtn->setDirGear("images/testUI01.png"); global->multiBtn->setPowerGear("images/testUI01.png"); global->multiBtn->setFireButton("images/button.png"); //还有一个装饰的大齿轮,素材没调好,不展示 global->multiBtn->setIsEnable(true); global->multiBtn->setStep(90.f); global->multiBtn->setScale(0.5f); global->multiBtn->setPosition(winSize.width - 80, winSize.height / 2 - 120);//位置调整要在后 this->addChild(global->multiBtn); Size size = Director::getInstance()->getWinSize(); //UILayer & its attaches //UILayer m_UILayer = UILayer::create(); this->addChild(m_UILayer); //创建随机行动顺序表 m_playerVector = Global::getInstance()->m_playersVector; { int i = 0; for (auto iterPlayer = m_playerVector.begin(); iterPlayer != m_playerVector.end(); iterPlayer++) { m_playersOrderList[i++] = (*iterPlayer)->m_sPlayerInfo.m_ID; } } m_curPlayer = Global::getInstance()->_playerObj; m_curPlayerOrder = 0; m_alivePlayersNum = 2; m_deadPlayersNum = 0; m_curTurnIsOver = false; m_curTurnIndex = 0; //注册中断函数 //m_interruptionMap[&(Player::Fired)] = 1;//&(CMainScene::onPlayerFired); //REGISTER_INTERRUPTIONS(&(Player::Fired),&(CMainScene::onPlayerFired)); //REGISTER_INTERRUPTIONS(&(Player::BombDidLanded), &(CMainScene::onBombDidLanded)); //Initialize MainScene's pointers m_gameState = PREPARING; m_prevGameState = PREPARING; m_downCountingTimer = STATE_INTERVAL[DOWN_COUNTING]; m_playerActionTimer = STATE_INTERVAL[RUNNING]; global->_physics3DWorld = this->getPhysics3DWorld(); global->_camera = Camera::createPerspective(30.0f, size.width / size.height, 1.0f, 1000.0f); global->_camera->setPosition3D(Vec3(0.0f, 80.0f, 160.0f)); global->_camera->lookAt(Vec3(0.0f, 0.0f, 0.0f), Vec3(0.0f, 1.0f, 0.0f)); global->_camera->setCameraFlag(CameraFlag::USER1); this->addChild(global->_camera); setPhysics3DDebugCamera(global->_camera); _navMesh = NavMesh::create("mesh/all_tiles_tilecache.bin", "mesh/geomset.txt"); _navMesh->setDebugDrawEnable(true); setNavMesh(_navMesh); setNavMeshDebugCamera(global->_camera); //Main logic part is initialized in update this->scheduleUpdate(); return true; }