Пример #1
0
    Ecs::Entity createPlayer(
        Threading::ConcurrentWriter<Ecs::World>& world,
        const Vec3Df& position,
        const Vec3Df& rotation,
        const Statistics& statistics,
        const Ecs::Entity& group,
        Event::EventQueue& queue
    ) {
        Ecs::Entity entity = createCharacter(
            world,
            position,
            rotation,
            statistics,
            group,
            queue
        );


        world->addComponent(
            entity,
            new Input::PlayerComponent()
        );

        return entity;
    }
Пример #2
0
MWState::Character *MWState::CharacterManager::getCurrentCharacter (bool create, const std::string& name)
{
    if (!mCurrent && create)
        createCharacter(name);

    return mCurrent;
}
Пример #3
0
void LoggedInState::runCommand(const std::string &command, const std::string &args)
{
	if (Logout == command) {
		ConsoleBackend::getSingleton().pushMessage("Logging out...", "important");
		mAccount.logout();

		// Create Character command
	} else if (CreateChar == command) {
		// Split string into name/type/sex/description
		Tokeniser tokeniser = Tokeniser();
		tokeniser.initTokens(args);
		std::string name = tokeniser.nextToken();
		std::string sex = tokeniser.nextToken();
		std::string type = tokeniser.nextToken();
		std::string spawnPoint = tokeniser.nextToken();
		std::string description = tokeniser.remainingTokens();

		createCharacter(name, sex, type, description, spawnPoint, Atlas::Message::MapType());

		// Take Character Command
	} else if (TakeChar == command) {

		takeCharacter(args);

		// List Characters Command
	} else if (ListChars == command) {

		mAccount.refreshCharacterInfo();

		// Say (In-Game chat) Command
	}
}
Пример #4
0
bool VenusScene::init()
{
	//////////////////////////////
	// 1. super init first
	if (!Layer::init())
	{
		return false;
	}
	
	Size visibleSize = Director::getInstance()->getVisibleSize();
	Point origin = Director::getInstance()->getVisibleOrigin();

	loadMap("maps/PantallaMercurio/Venus.tmx", "Objetos", "Rocas2", "Rocas1", "bg1", "bg2", "FondoPrincipal", "Meta");
	setEventHandlers();	
	
	createCharacter("maps/personajepequeno.png");

	//createCharacterAnimation();


	 tileMap->addChild(playerOne->PlayerSprite, 2);

	 crearParticulaFuego(Point(2200,120));

	this->addChild(tileMap, -1, 1);
	setPointOfView(Point(playerOne->PlayerSprite->getPosition()));
	printf("x mapPosition %f", tileMap->getPosition().x);
	printf("x mapPosition %f", tileMap->getPosition().y);
    auto listener = EventListenerKeyboard::create();


	cocos2d::Sprite* ptr = playerOne->PlayerSprite;
	while (metaCheck(Point(ptr->getPositionX(), ptr->getPositionY()-3)) == "Normal")
	{

		ptr->setPosition(Point(ptr->getPositionX() + 0.5, ptr->getPositionY() - 0.5));

		ptr->setPosition(Point(ptr->getPositionX(), playerOne->PlayerSprite->getPositionY() - 1.5));

		setPointOfView(Point(ptr->getPosition()));
	}

	listener->onKeyPressed = CC_CALLBACK_2(VenusScene::keyPressed, this);
	listener->onKeyReleased = CC_CALLBACK_2(VenusScene::keyReleased, this);
	this->schedule(schedule_selector(VenusScene::onKeyHold));
	_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);

	//Carga de las estrellas de puntaje
	loadStars();
	//Etiqueta en pantalla del marcador
	marcadores();
    cargarPropulsores();
	cargarNave();
	//Método para verificar las distintas colisiones, en este caso, de estrellas para actualizar el puntaje
	schedule(schedule_selector(VenusScene::updateColision));

	
	return true;
}
int NewGameMenuController::launch(std::string &name) {
	newGameMenuScreen.display(true);
	bool correct = false;
	bool stop = false;
	do {
		sf::Event event = newGameMenuScreen.recupInput();
		if (event.type == sf::Event::Closed)
			return CLOSE_INPUT;
		//If a text is entered:
		if (event.type == sf::Event::TextEntered) {
			sf::String s = newGameMenuScreen.characterName.getString();
			//If it's a backspace we erase the last caracter
			if (event.text.unicode == 8) {
				if (s.getSize() > 0)
					s.erase(s.getSize() - 1);
			}
			//We accept letters
			else if ((event.text.unicode > 96) && (event.text.unicode < 123)) {
				if (s.getSize() < 17)
					s.insert(s.getSize(), event.text.unicode);
			}
			//And capitals
			else if ((event.text.unicode > 64) && (event.text.unicode < 91)) {
				if (s.getSize() < 17)
					s.insert(s.getSize(), event.text.unicode);
			}
			//We accpet "-"
			else if (event.text.unicode == 45) {
				if (s.getSize() < 17)
					s.insert(s.getSize(), event.text.unicode);
			}
			//We accpet space
			else if (event.text.unicode == 32) {
				if ((s.getSize() < 17) && ((s.getSize() > 0)))
					s.insert(s.getSize(), event.text.unicode);
			}
			//And finally we check if the name is valid
			correct = true;
			//For the size
			if (s.getSize() <= 0)
				correct = false;
			//And if the name doesn't exist yet
			for (std::list<std::string>::iterator it=characters.begin();it!=characters.end(); ++it)
				if ((*it).compare(StringUtils::saveStem(s)) == 0)
					correct = false;
			newGameMenuScreen.characterName.setString(s);
			newGameMenuScreen.display(correct);
		}
		else if (event.type == sf::Event::KeyPressed) {
			if (event.key.code == sf::Keyboard::Escape)
				return TO_MAIN_MENU;
			if (event.key.code == sf::Keyboard::Return)
				stop = correct;
		}
	} while (!stop);
	name = newGameMenuScreen.characterName.getString();
	createCharacter(name);
	return TO_CONTINUE;
}
Пример #6
0
void GameLogic::createPlayerCharacter()
{
    if (!playerCharacter_&& !startPositions_.empty()) {
        Vector2 position = startPositions_.front();
        playerCharacter_ = createCharacter(playerCharacterName_, position, FRIEND_CATEGORY);
        std::cerr << "DEBUG: Created player character." << std::endl;
    }
}
Пример #7
0
int main()
{
	FSM* fsm = concat(closure(alternative(createCharacter('a'), 
										  createCharacter('b'))),
					  concat(createCharacter('a'), 
							 concat(createCharacter('b'), createCharacter('b'))));
	printFsm(fsm);
	char buffer[100];
	do {
		printf("String: ");
		scanf("%s", buffer);
		if (simulate(fsm, buffer)) {
			printf("%s wurde akzeptiert.\n", buffer);
		} else {
			printf("%s wurde nicht akzeptiert.\n", buffer);
		}
	} while (buffer[1]);
	freeFsm(fsm);
}
Пример #8
0
bool BattleLayer::addCharacterToBattleMap(const cocos2d::Vec2 &position){
    int tileCoordX = static_cast<int>(position.x) / static_cast<int>(_battleTileSize.width);
    int tileCoordY = static_cast<int>(position.y) / static_cast<int>(_battleTileSize.height);
    Vec2 characterPosition = Vec2(tileCoordX * _battleTileSize.width + _battleTileSize.width / 2, tileCoordY * _battleTileSize.height + _battleTileSize.height / 2);
    
    Character *testFatty = createCharacter(CharacterName::Fatty, Side::Player, this);
    testFatty->setPosition(characterPosition);
    _battleMap->addChild(testFatty, getBattleElementZOrderOnBattleMap(testFatty));
    
    playerCharacters.push_back(testFatty);
    return true;
}
Пример #9
0
bool BattleLayer::addCharacterToBattleMap(const CharacterName &name, const cocos2d::Vec2 &worldPosition){
    Vec2 positionInBattleMap = _battleMap->convertToNodeSpace(worldPosition);
    Rect battleRect = Rect(0, 0, _battleMapSize.width, _battleMapSize.height);
    if (battleRect.containsPoint(positionInBattleMap)){
        CCLOG("%s, %s, (%.2f, %.2f)", __func__, getCharacterNameString(name).c_str(), worldPosition.x, worldPosition.y);
        Character *newCharacter = createCharacter(name, Side::Player, this);
        newCharacter->setPosition(positionInBattleMap);
        _battleMap->addChild(newCharacter, getBattleElementZOrderOnBattleMap(newCharacter));
        playerCharacters.push_back(newCharacter);
        newCharacter->setID(_characterID++);
        _playerWater -= GameData::getInstance()->getCharacterWaterCost(name);
        return true;
    }
    return false;
}
Пример #10
0
bool GuanacasteScene::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
   loadMap("Maps/guanacasteMap.tmx","bg","foreground1","foreground2","meta","extra","objetos");
   campFire();
   tileMap->addChild(SFogata,1);
   createCharacter("Personaje.png");
   tileMap->addChild(Player1->PlayerSprite,5);
   setTouchEnabled(true);
   setEvents();
   this->addChild(tileMap,-1,1);
   schedule(schedule_selector(GuanacasteScene::update));
   return true;
}
Пример #11
0
bool Application::setup()
{
	Ogre::OverlayManager::getSingleton().getByName("InfoPanel")->show();
	
	m_NXOgreScene->getMaterial(0)->setStaticFriction(0.5);
	m_NXOgreScene->getMaterial(0)->setDynamicFriction(0.5);
	m_NXOgreScene->getMaterial(0)->setRestitution(0.1);

	createCharacter();

	createVolume();

	createBasicScenary();

	createTriangleMeshes();

	createConvexes();
	
	return true;
}
Пример #12
0
Player::Player(Map* Board, int isInPlay[])
{
	// Roll for a random character 
		int characterRoll;

		while(true)
		{
			srand((unsigned int)time(0));
			characterRoll = rand() % NUMBEROFCHARACTERS;
			if(isInPlay[characterRoll] == 0)
			{
				isInPlay[characterRoll] = 1;
				break;
			}			
		}

		character = createCharacter(characterRoll);
		isPermaDead = false;
		currentRegion = "outter";
		Player::setCurrentArea(Board,"outter",character.getSpawnPoint());
}
Пример #13
0
bool Character::processMessage(const std::string &str, Player *pPlayer, std::string &data){
    Characters message;
    message.ParseFromString(str);

    Characters msg;
    switch(message.type()){
        case Characters::LIST:
            msg.set_type(Characters::LIST_CB);
            getCharacterList(pPlayer, msg);
            data = msg.SerializeAsString();
            break;
        case Characters::CREATE:
            msg.set_type(Characters::CREATE_CB);
            createCharacter(pPlayer, message, msg);
            data = msg.SerializeAsString();
            break;
        default:
            break;
    }

    return true;
}