예제 #1
0
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);
	}
}
예제 #3
0
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;
}