Ejemplo n.º 1
0
void GameApp::run()
{
	loadedSurface = IMG_Load("res/arrow.png");
	if(!loadedSurface) {
    	printf("no image...IMG_Load: %s\n", IMG_GetError());
    	// handle error
	}
    sheep = SDL_CreateTextureFromSurface(gRenderer, loadedSurface);
	
    if(sheep == NULL)
    {
        printf("Unable to create ship texture! SDL Error: %s\n", SDL_GetError());
        quit=true;
    }
    SDL_FreeSurface(loadedSurface);
	
	loadedSurface = IMG_Load("res/rightm.png");
	rocket = SDL_CreateTextureFromSurface(gRenderer, loadedSurface);
	if(rocket == NULL)
	{
		printf("Unable to create rocket texture! SDL Error: %s\n", SDL_GetError());
		quit=true;
	}
	SDL_FreeSurface(loadedSurface);

	//printf("Calling createPlayers() function...\n");


	createPlayers();

	//printf("Calling playGame() function...\n");
    playGame();
}
Ejemplo n.º 2
0
bool BattleScene::init(PreloadBattleScene* preloaderScene, std::vector<int> parameters)
{
	if (!AbstractWorldScene::init("nodes/Table_Battle.csb"))
    {
        return false;
    }
	_modeGame = BATTLE_MODE(parameters.at(0));
	int countPlayer = parameters.at(1) + 2;

	_preloaderScene = preloaderScene;

	_blackLayer = LayerColor::create(Color4B(0,0,0,0));
	_mapLayer = Layer::create();
	_debugLayer = Layer::create();

	schedule(schedule_selector(BattleScene::update), 0.01f);
	
	_mapLayer->setTag(SIMPLE);
	_borderNode = CSLoader::createNode("nodes/WorldSceneSimple_1.csb");
 	_timer->setTime(180);

	for (int i = 0; i < 5; i++)
	{
		auto text = static_cast<ui::Text*>(_tableNode->getChildByName("Text_" + myUtils::to_string(i)));
		text->setString("");
		_texts.push_back(text);
	}

	_mapLayer->addChild(_borderNode, 0);
	_currentIndexLevel = 1;

	createPlayers(countPlayer);
	createControll(GameSettings::Instance().getControlType());

	for (int i = 0; i < countPlayer; i++)
	{
		_texts.at(i)->setString(myUtils::to_string(GameSettings::Instance().getCountWinPlayer(_players.at(i)->getColorID())));
	}

	_mapLayer->addChild(_debugLayer, 100);
	createWalls(2, _modeGame == NORMAL ? 10 : 16);
	createNPCs();
	for (auto player : _players)
	{
		_control->showControlPlayer(player->getColorID(), true);
		player->_collisions = _borderNode->getChildren();
		player->setBricks(_bricks);
	}
	addChild(_mapLayer);
	addChild(_blackLayer, 1000);

    return true;
}
Ejemplo n.º 3
0
bool Engine::setup() {
	//carrega plugins do arquivo de plugins(plugins.cfg)
	String pluginsPath;

	pluginsPath = _configuration->getResourcePath() + "plugins.cfg";
	
    _root = OGRE_NEW Root(pluginsPath, _configuration->getResourcePath() + "ogre.cfg", _configuration->getResourcePath() + "ogre.log");
	EngineGlobalObjects::getInstance().setRoot(_root);

    setupResources();

    bool configured = configure();
	if (!configured) return false;

	chooseSceneManager();
	createCamera();
	createViewports();

	// Set default mip_map level (NB some APIs ignore this)
	TextureManager::getSingleton().setDefaultNumMipmaps(5);

	//criamos um resource listeners (para tela de login)
	createResourceListener();

	//carregamos os recursos
	loadResources();

	//criamos o cenário
	createScene();
	
	//criamos os jogadores
	createPlayers();

	//criamos o mapa
	createMap();

	//criamos as armas
	createWeapons();

	//criamos o frame listener
	createFrameListener();
	
	return true;
}
Ejemplo n.º 4
0
void getNames() {

    printf("Anzahl der Spieler eingeben (max. %i): ", maxPlayersAmount);
    AmountOfPlayers = scannerInt();
    createPlayers(AmountOfPlayers);

    if (AmountOfPlayers >= 1 && AmountOfPlayers <= maxPlayersAmount) {
        printf("\nBitte Namen eingeben...\n\n");

        for (int i = 0;
             i < AmountOfPlayers; i++) {        //checking for the correctness of input and saving the names of players
            printf("Spieler %i: ", i + 1);
            scanf("%29s", &players[i].name[0]);
        }
    } else {
        printf("\nDie einzugebende Zahl muss eine natuerliche Zahl im Bereich von 1 bis %i sein!\n\n",
               maxPlayersAmount);
        getNames();
    }
}
Ejemplo n.º 5
0
void Game::createGame() {
  setRules();
  createPlayers();
  shuffleDeck();
  dealCards();
}
Ejemplo n.º 6
0
void GameEngine::gameProcessing()
{
    switch (currentGameState)
    {
        case GS_INIT:
        {
            //create GameState window
            gameState = new GameState();
            gameState->setActive("NextTurnBtn", false);
            gameState->setActive("ExchangeBtn", false);

            //init bank
            createCardBank();

            //players
            createPlayers();

            //init map
            creatMap();

            throwDices();

            currentGameState = GS_SELECT_PLAYER_ORDER;
            break;
        }
        case GS_SELECT_PLAYER_ORDER:
        {
            createPlayersQueue();
            gameState->setCurrentPlayer(*currentPlayer);
            currentChipType = VILLAGE;
            currentGameState = GS_PUT_FIRST_CHIP;

            break;
        }
        case GS_PUT_FIRST_CHIP:
        {
            highlightAllowedVertexes();
            if (chipPut)
            {
                currentPlayer->putChip(*chipForPut, true);

                chipPut = false;
                isCalcAllowedPuts = true;

                currentChipType = ROAD;
                currentGameState = GS_PUT_FIRST_ROAD;
            }
            break;
        }
        case GS_PUT_FIRST_ROAD:
        {
            highlightAllowedVertexes();
            if (chipPut)
            {
                currentPlayer->putChip(*chipForPut, true);

                chipPut = false;
                isCalcAllowedPuts = true;

                currentChipType = VILLAGE;
                ++firstTurnsCounter;
                if (firstTurnsCounter < players.size())
                {
                    currentGameState = GS_PUT_FIRST_CHIP;
                    nextTurn();
                }
                else
                {
                    currentGameState = GS_PUT_SECOND_CHIP;
               }
            }
        }
        case GS_PUT_SECOND_CHIP:
        {
            highlightAllowedVertexes();
            if (chipPut)
            {
                currentPlayer->putChip(*chipForPut, true);
                currentPlayer->getLastChip()->getRecourcesFromHexagons();

                chipPut = false;
                isCalcAllowedPuts = true;

                currentChipType = ROAD;
                currentGameState = GS_PUT_SECOND_ROAD;
            }
            break;
        }
        case GS_PUT_SECOND_ROAD:
        {
            highlightAllowedVertexes();
            if (chipPut)
            {
                currentPlayer->putChip(*chipForPut, true);

                chipPut = false;
                isCalcAllowedPuts = true;

                currentChipType = VILLAGE;

                ++firstTurnsCounter;
                if (firstTurnsCounter < players.size()*2)
                {
                    currentGameState = GS_PUT_SECOND_CHIP;
                    nextTurn();
                }
                else
                    currentGameState = GS_THROW_DICES;
            }
            break;
        }
        case GS_THROW_DICES:
        {
            throwDices();
            for (int i = 0; i < MAX_HEXAGON_COUNT; ++i)
            {
                if (hexagons[i].getDice() == dices.dice())
                {
                    int resToDist = hexagons[i].getResourcesCountToDistribute();

                    if (canGetFromBank((eCardType) hexagons[i].getType(), resToDist))
                    {
                        hexagons[i].distributeResources();
                    }
                }
            }
            gameState->setCurrentPlayer(*currentPlayer);
            currentGameState = GS_PLAYER_TURN;
            break;
        }
        case GS_PLAYER_TURN:
        {
            gameState->setActive("NextTurnBtn", true);
            gameState->setActive("ExchangeBtn", true);

            highlightAllowedVertexes();
            if (chipPut)
            {
                currentPlayer->putChip(*chipForPut);
                chipPut = false;

                allowedPuts.clear();

                gameState->setCurrentPlayer(*currentPlayer);
            }
            break;
        }
        case GS_TURN_END:
        {
            isCalcAllowedPuts = true;
            currentGameState = GS_THROW_DICES;
            nextTurn();
            break;
        }
        case GS_END:
        {
            break;
        }
        case GS_ERROR:
        {
            break;
        }
    }
}
Ejemplo n.º 7
0
//konstruktor z parametrami
Players::Players(int numplayers, int sizex, int sizey)
{
	createPlayers(numplayers, sizex, sizey);
}
Ejemplo n.º 8
0
void PlayState::enter ()
{
    
    createPlayers();

/*
  _root = Ogre::Root::getSingletonPtr();

  // Se recupera el gestor de escena y la cámara.
  _sceneMgr = _root->getSceneManager("SceneManager");
  _camera = _sceneMgr->getCamera("IntroCamera");
  _viewport = _root->getAutoCreatedWindow()->addViewport(_camera);
  // Nuevo background colour.
  _viewport->setBackgroundColour(Ogre::ColourValue(0.0, 0.0, 1.0));

  _exitGame = false;
*/

  _root = Ogre::Root::getSingletonPtr();
  _sceneMgr = _root->getSceneManager("SceneManager");
  _sceneMgr->setAmbientLight (Ogre::ColourValue (1, 1, 1));

  _camera = _sceneMgr->getCamera ("IntroCamera");
  //_viewport = _root->getAutoCreatedWindow()->getViewport(0);
  _viewport = _root->getAutoCreatedWindow()->addViewport(_camera);
  double width = _viewport->getActualWidth ();
  double height = _viewport->getActualHeight ();
  _camera->setAspectRatio (width / height);
  _viewport->setBackgroundColour (ColourValue (0.0, 0.0, 0.0));

  //Tiempo entre frame y frame
  _deltaT = 0;

   
  //Creamos la escena
  createScene ();
  //Gui
  createGUI ();
  createGUIDefensaHumano();
  
  _camera->setPosition (Vector3 (0,12,18));
  _camera->lookAt (_sceneMgr->getRootSceneNode()->getPosition());
  _camera->setNearClipDistance (0.1);
  _camera->setFarClipDistance (100);
  
  _raySceneQuery = _sceneMgr->createRayQuery(Ogre::Ray());
  _selectedNode = NULL;
  _animState = NULL;
  _nodoCursor = _sceneMgr->createSceneNode("nodoCursor");
  _sceneMgr->getRootSceneNode()->addChild(_nodoCursor);
  _flip = false;
  _colocandoBarco = false;
  _exitGame = false;
  _tSpeed = 10.0;                              //Distancia en unidades del mundo virtual que queremos recorrer en un segundo cuando movamos cositas
  _estado = inicio;
  _turnoEnCurso = true;
  _idJugador = 0;
  _wait = false;
  _enRacha = 1;
  _ganador = NULL;
  _volverMenu = false;
  
  //activaGUIGameOver();
}