当前位置: 首页>>代码示例>>C++>>正文


C++ GameScene类代码示例

本文整理汇总了C++中GameScene的典型用法代码示例。如果您正苦于以下问题:C++ GameScene类的具体用法?C++ GameScene怎么用?C++ GameScene使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了GameScene类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: WriteData

void MapLayer::GoNextStage(int x, int y){
    if(doorCount>10)
        return;
    
    GameScene * par = nullptr;
    
    for(DoorInfo info : doorList){
        if(info.x == x && info.y == y){
            UserDefault::getInstance()->setIntegerForKey("jejeHP", JeJe::GetInstance()->GetHP());
            UserDefault::getInstance()->setBoolForKey("blueKey", JeJe::GetInstance()->HasBlue());
            UserDefault::getInstance()->setBoolForKey("purpleKey", JeJe::GetInstance()->HasPurple());
            UserDefault::getInstance()->setBoolForKey("redKey", JeJe::GetInstance()->HasRed());
            
//            CreatureLayer::GetInstance()->WriteData();
            WriteData();
            
            int stageKind = UserDefault::getInstance()->getIntegerForKey("stageKind");
            int stageIdentity = UserDefault::getInstance()->getIntegerForKey("stageIdentity");
            UserDefault::getInstance()->setIntegerForKey("fromStageKind", stageKind);
            UserDefault::getInstance()->setIntegerForKey("fromStageIdentity", stageIdentity);
            UserDefault::getInstance()->setIntegerForKey("stageKind", info.toKind);
            UserDefault::getInstance()->setIntegerForKey("stageIdentity", info.toIdentity);
            UserDefault::getInstance()->setIntegerForKey("doorNumber", info.number);
            par = (GameScene*)(CreatureLayer::GetInstance()->getParent());
            break;
        }
    }
    if(par)
        par->Reload();
}
开发者ID:gnosy1590,项目名称:projectWhipping,代码行数:30,代码来源:MapLayer.cpp

示例2: main

int main(int argc, char **argv) {
	srand(time(NULL));
	std::cout << "VECTOR 2048 game\n";
	int cell_size = 80;
	int padding = 15;
	int wsize = cell_size * 4 + 5 * padding;

	GameWindow *window = new GameWindow("2048", wsize, wsize+40, false);
	Camera *camera = new Camera(window->painter());
	GameScene *scene = new GameScene(camera);

	BackgroundLayer * background = new BackgroundLayer(Color(143, 116, 45));
	scene->addEntity(background);

	Board * board = new Board(cell_size, padding);

	scene->addEntity(board);
	scene->addKeyListener(board);

	scene->gameLoop(10);

	delete scene;
	delete window;

	return 0;
}
开发者ID:Mandarancio,项目名称:Vector,代码行数:26,代码来源:2048.cpp

示例3: Vec2

void ToyLayer::handIn(ToyType type)
{
	static auto deskTopPos = Vec2(230,360);
	auto toyPos = _koala->getPosition()+Vec2(50,-20);
	auto toy = _toies.at(type);
	toy->setPosition(toyPos);
	toy->setVisible(true);
	auto move = MoveTo::create(toyPos.distance(deskTopPos)/300.0f,deskTopPos);
	auto rotate = RotateBy::create(toyPos.distance(deskTopPos)/300.0f,720);
	auto action = toy->runAction(rotate);
	action->setTag(106);
	toy->runAction(Sequence::create(move,CallFunc::create([=](){

		toy->stopAllActions();
		toy->setRotation(0);
		SimpleAudioEngine::getInstance()->stopBackgroundMusic(false);

		GameScene *gameScene = (GameScene*)this->getParent();
		int count = gameScene->getStaticLayer()->getBuyer()->getBuyedToies().size();

		auto secen = PlayToyScene::create(type);
		secen->setToyCount(count);
		Director::getInstance()->pushScene(TransitionFade::create(1.5,secen));
	}),NULL));
}
开发者ID:tieunun,项目名称:FindToy_2,代码行数:25,代码来源:ToyLayer.cpp

示例4: tile

vector2d<int> Unit::availableTile(Entity* target) {
	GameScene* scene = (GameScene*) (Game::getInstance().currentScene);
	vector2d<int> tile(-1, -1);
	vector<vector2d<int>>* candidates;

	candidates = target->getSurroundingTiles();
	for(int i = 0; i < candidates->size(); i++) {
		if(scene->getEntity(candidates->at(i).X, candidates->at(i).Y) ) {
			candidates->erase(candidates->begin() + i);
			i--;
		}		
	}
	
	float lowest = FLT_MAX;
	for(int i = 0; i < candidates->size(); i++) {
		float distance = candidates->at(i).getDistanceFrom(vector2d<int>(tileX, tileY) );
		if(distance < lowest ) {
			tile = candidates->at(i);
			lowest = distance;
		}
	}

	delete candidates;
	return tile;
}
开发者ID:MegaR,项目名称:ARiseofWar,代码行数:25,代码来源:Unit.cpp

示例5: Hurt

void Player::Hurt(float amount)
{
	if (amount > 0)
	{
		SimpleAudioEngine::sharedEngine()->playEffect("sounds/hurt.wav");
	}

	GameScene* father = (GameScene*)this->getParent();

	m_currentBloodValue -= amount;

	if (m_currentBloodValue <= 0)
		m_currentBloodValue = 0;
	else if (m_currentBloodValue >= Player_TotalBloodValue)
		m_currentBloodValue = Player_TotalBloodValue;
		
	father->UpdateBloodValue(m_currentBloodValue*1.0/Player_TotalBloodValue);

	if(m_currentBloodValue <= 0)
	{
		Die();
	}
	else
	{
		
	}

	
	

	if(amount == 1)
	{

	}
}
开发者ID:YuYing-yy,项目名称:DownFloors,代码行数:35,代码来源:Player.cpp

示例6: GameScene

// Start of user code methods
void LoadingScene::render()
{
    VBOScene::render();
    if(thread == NULL)
    {
        thread = new std::thread (initWorld);
        mutex->lock();
    }
    if(mutex->try_lock())
    {
        GameScene* gameScene = new GameScene(Engine::getInstance()->getPlayer());
        gameScene->init();
        
        Engine* engine = Engine::getInstance();
        
        
        gameScene->getDoubleBuffer()->getVertexBuffer()->bind();
        gameScene->getDoubleBuffer()->getIndiceBuffer()->bind();
        
        engine->setScene(gameScene);
        engine->getPlayer()->setFalling(true);
        
        glfwSetInputMode(engine->getWindow(), GLFW_CURSOR, GLFW_CURSOR_HIDDEN);
        
        engine->refresh();

        gameScene->updateIndices();
        
        mutex->unlock();
    }
}
开发者ID:RetroGamingArena,项目名称:minequest,代码行数:32,代码来源:LoadingScene.cpp

示例7: while

void Unit::moveTo(int desX, int desY)
{
	if(hasMoved) return;
	if(desX == tileX && desY == tileY) return;

	GameScene* scene = (GameScene*)Game::getInstance().currentScene;
	vector<vector2d<int>>* newPath = scene->findPath(vector2d<s32>(tileX, tileY), vector2d<s32>(desX, desY) );
	if(!newPath) return;
	while(newPath->size() > maxDistance) {
		newPath->erase(newPath->begin());
	}

	while(newPath->size() > 0) {
		path.push_back( newPath->at(newPath->size()-1) );
		newPath->pop_back();
	}
	delete newPath;

	
	((GameScene*)scene)->tilesystem.tiles[tileX][tileY]->setEntity(NULL);
	tileX = path[path.size()-1].X;
	tileY = path[path.size()-1].Y;
	((GameScene*)scene)->tilesystem.tiles[tileX][tileY]->setEntity(this);
	hasMoved = true;
}
开发者ID:MegaR,项目名称:ARiseofWar,代码行数:25,代码来源:Unit.cpp

示例8: getPosition

void TileSprite::addSwammSprite(bool bTumble)
{
	GameScene * gameScene = GameScene::getInstance();
	SwammSprite * pSprite = nullptr;
	int nMarioLevel = GameScene::getInstance()->getMario()->getMarioLevel();
	if (nMarioLevel >= 2)
		pSprite = SwammSprite::createWithSpriteFrameName("object/flower.png", gameScene->getWorld());
	else
		pSprite = SwammSprite::createWithSpriteFrameName("object/swamm.png", gameScene->getWorld());

	b2Fixture * fixture = gameScene->getGameWorld()->CreatePolygonBody(pSprite, getPosition(), b2_dynamicBody);

	b2Filter filter;
	filter.categoryBits = 0x0000;
	filter.maskBits = 0x0080;
	fixture->SetFilterData(filter);
	fixture->SetFriction(0.0f);
	pSprite->getBody()->SetFixedRotation(true);	//禁用旋转
	pSprite->EnableGravity(false);

	pSprite->setCameraMask(2);
	GameScene::getInstance()->getMapLayer()->getTileMap()->addChild(pSprite, 5, GSTag_Swamm);

	//执行动作
	pSprite->runAction(Sequence::create(
		MoveBy::create(0.4f, Vec2(0, bTumble ? -70.0f : 70.0f)),
		CCCallFunc::create(CC_CALLBACK_0(SwammSprite::beginAction, pSprite,
		(nMarioLevel >= 2) ? SwammType_Flower : SwammType_Swamm)),
		nullptr));
}
开发者ID:hantingmeixue,项目名称:MyCocosGame,代码行数:30,代码来源:TileSprite.cpp

示例9: objectsWithTag

	static int objectsWithTag(lua_State* L)
	{
		GameScene* scene = checkarg<GameScene*>(L, 1);
		const char* tag = checkarg<const char*>(L, 2);

		// Get list
		auto objList = scene->findObjectsByTag(tag);

		lua_pushcfunction(L, objectIterator);

		// Create Iterator Pair
		if (objList) 
		{
#ifdef ITERATOR_USE_USERDATA
			void* iterData = lua_newuserdata(L, sizeof(ObjectIterPair));

	#ifdef XIHAD_MLD_NEW_OBJECT
			// Enable __gc function when Auto-reference-counting enabled
			Metatable::forType<ObjectIterPair>(L);
			lua_setmetatable(L, -2);
	#endif

			new (iterData) ObjectIterPair(*objList);
#else
			lua_pushlightuserdata(L, new ObjectIterPair(*objList));
#endif
		}
		else
		{
			lua_pushlightuserdata(L, 0);
		}
		
		lua_pushnil(L);
		return 3;
	}
开发者ID:NextRPG,项目名称:Xihad,代码行数:35,代码来源:luaopen_GameScene.cpp

示例10: while

void GeneticAlgorithmProfile1::BeforeDeployment(cocos2d::Layer& _sc)
{
    GameScene* gs = (GameScene*) &_sc;
    
    if( this->gaThreadData->GetNonGARounds() > 0 && this->gaThreadData->IsGaEnabled() == false)
    {
        int tc = pthread_create(&threadsGA[0], NULL, &GeneticAlgorithmProfile1::Algorithm, this->gaThreadData);
        //wait until need simulating is enabled
        while(!this->gaThreadData->IsGaInitialized() && this->gaThreadData->GetNonGARounds() > 0)
        {
            sleep(1); // wait for ga initialisation
        }
    }
    
    if( this->gaThreadData->IsGaEnabled() == true)
    {
        while(!this->gaThreadData->IsSimulating() && this->gaThreadData->GetNonGARounds() > 0)
        {
            sleep(1); // wait for start simulation to start
        }
        
        if(this->gaThreadData->IsGaEnabled() == true)
        {
            this->BackUpState(_sc);
            gs->GetGUI()->SetGameAlert2("DEPLOYMENT GA SIMULATING : PLEASE WAIT!!!");
            gs->simulationMode = true;
        }
    }
    
}
开发者ID:geofl,项目名称:tdai,代码行数:30,代码来源:GeneticAlgorithmProfile1.cpp

示例11: filestream

void 		Bomberman::loadGame() {
	GameScene *ptr;
  	char  *cfile;
  	std::string tmp;

  	cfile = BUtils::openFileDialog("Please choose your saved game");
  	if (cfile) {
  		tmp = cfile;
  		std::ifstream filestream(cfile, std::ifstream::in);
  		if (filestream && BUtils::checkMd5(tmp)) {
			if (this->_scenes[GAME])
				delete this->_scenes[GAME];
			ptr = new GameScene(this, this->_keyController, this->_camera);
			ptr->loadGame(tmp);
			this->_scenes[GAME] = ptr;
			this->_scenes[GAME]->initialize();
			this->setScene(GAME);

  		} else {
  			BUtils::runDialog(GTK_MESSAGE_ERROR, "The map file cannot be opened or is invalid.");
  		}
  	} else {
  		BUtils::runDialog(GTK_MESSAGE_WARNING, "You haven't chosen a file.");
  	}
}
开发者ID:GhaisB,项目名称:Bomberman,代码行数:25,代码来源:Bomberman.cpp

示例12: WinMain

// プログラムは WinMain から始まります
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	GameScene* mGameScene;		//ゲームシーンの作成 こいつが画面を見ている
	mGameScene = new GameScene;	//インスタンス生成 GameSceneのコンストラクタでタイトルシーンをを入れている
	
	SetGraphMode(640, 480, 16);	//画面の解像度
	ChangeWindowMode(TRUE);
	if (DxLib_Init() == -1)		// DXライブラリ初期化処理
	{
		return -1;			// エラーが起きたら直ちに終了
	}
	// 描画先画面を裏画面にセット
	SetDrawScreen(DX_SCREEN_BACK);
	// ループ
	while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0)
	{
		// 画面を初期化する
		ClearDrawScreen();

		//画面動作処理
		mGameScene->Update();

		//画面描画処理
		mGameScene->Draw();

		// 裏画面の内容を表画面に反映させる
		ScreenFlip();
	}
	DxLib_End();				// DXライブラリ使用の終了処理
	return 0;				// ソフトの終了 
}
开发者ID:saitousann,项目名称:Shooting,代码行数:32,代码来源:Main.cpp

示例13: pause

void PanelLayer::pause(cocos2d::CCObject* pSender)
{
	PersonalAudioEngine::sharedEngine()->playEffect(STATIC_DATA_STRING("click_button"));
	this->getChildByTag(MENUTAG)->setVisible(false);
	GameScene* gameScene = (GameScene*)this->getParent();
	gameScene->pause();
}
开发者ID:cruisehu,项目名称:PongPongPia,代码行数:7,代码来源:PanelLayer.cpp

示例14: Update

void LevelTrigger::Update(float deltaTime) {
	if(CollidesWith("player")) {
		GameScene* scene = (GameScene*)Scene;

		int roomX = scene->CurrentLevel->CurrentRoomX;
		int roomY = scene->CurrentLevel->CurrentRoomY;

		if(roomX == 7 && roomY == 7) {
			scene->SwitchLevel("room 1");
			return;
		}

		if(roomX == 4 && roomY == 6) {
			scene->SwitchLevel("boss");
			return;
		}

		if(roomX == 6 && roomY == 6) {
			scene->SwitchLevel("shopkeeper");
			return;
		}


		scene->SwitchLevel("random");
	}
}
开发者ID:dotKokott,项目名称:LegendOfZeldaClone,代码行数:26,代码来源:LevelTrigger.cpp

示例15: addDistanceTiles

void Unit::addDistanceTiles(int x, int y, int distance) {
	Game* game = &Game::getInstance();
	GameScene* scene = (GameScene*)game->currentScene;

	if(distance < 0) return;
	if(x < 0 || x > MAPSIZE-1) {
		return;
	}
	if(y < 0 || y > MAPSIZE-1) {
		return;
	}

	if(!scene->tilesystem.tiles[x][y]->walkable) {
		return;
	}

	Entity* entity = scene->getEntity(x,y);
	if( entity != NULL && entity != this ) {
		return;
	}

	bool alreadyThere = false;
	for(int i = 0; i < distanceTiles.size(); i++) {
		if(distanceTiles.at(i)->getPosition().X == x*10 
			&& distanceTiles.at(i)->getPosition().Z == y*10) {
				alreadyThere = true;
		}
	}

	bool inAttackRange = false;
	for(int i = 0; i < scene->entities.size(); i++) {
		if(scene->entities.at(i)->player == 0) continue;
		if(scene->entities.at(i)->inAttackRange(x, y, attackDistance) ) {
			inAttackRange = true;
		}
	}

	if(!inAttackRange && hasMoved) return;

	if(!alreadyThere) {
		IAnimatedMesh* model = game->sceneManager->getMesh("res/tileDistance.3ds");
		ISceneNode* node = game->sceneManager->addMeshSceneNode(model);
		node->setMaterialFlag(EMF_LIGHTING, false);
		node->setMaterialType(video::EMT_TRANSPARENT_ALPHA_CHANNEL);
		if(inAttackRange) {
			node->setMaterialTexture( 0, game->videoDriver->getTexture("res/tileDistanceRed.png") );
		} else {
			node->setMaterialTexture( 0, game->videoDriver->getTexture("res/tileDistanceBlue.png") );
		}
		node->setPosition(vector3d<f32>(x*10, 0, y*10) );
		node->setID(0);
		distanceTiles.push_back(node);
	}

	addDistanceTiles(x-1, y, distance-1);
	addDistanceTiles(x+1, y, distance-1);
	addDistanceTiles(x, y-1, distance-1);
	addDistanceTiles(x, y+1, distance-1);
}
开发者ID:MegaR,项目名称:ARiseofWar,代码行数:59,代码来源:Unit.cpp


注:本文中的GameScene类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。