예제 #1
0
// -------------------------------------------------------------------
// InitControllers
// -------------------------------------------------------------------
void BitSwarmClient::InitControllers()
{
	boost::shared_ptr<Sfs2X::Controllers::SystemController> sysController (new Sfs2X::Controllers::SystemController(shared_from_this()));
	sysController->Initialize();

	boost::shared_ptr<Sfs2X::Controllers::ExtensionController> extController (new Sfs2X::Controllers::ExtensionController(shared_from_this()));

	AddController(0, sysController);
	AddController(1, extController);
}
예제 #2
0
void RoomLayoutCtrller::Init()
{
	//ÁÙġͼ
	AddController(ERoomLayoutSatate::ERS_PICTURE, std::make_shared<RoomLayoutPictureCtrller>(GraphODL_, GetRenderContextSPtr()));

	//»æÖÆ
	AddController(ERoomLayoutSatate::ERS_DRAWING, std::make_shared<RoomLayoutDrawingCtrller>(GraphODL_, GetRenderContextSPtr()));

	//ä¯ÀÀ
	AddController(ERoomLayoutSatate::ERS_BROWSE, std::make_shared<RoomLayoutBrowserCtrller>(GraphODL_, GetRenderContextSPtr()));

	//ĬÈÏ״̬
	SetCurrentState(ERoomLayoutSatate::ERS_BROWSE);
}
예제 #3
0
CPlayer::CPlayer( ) : CUnitObject( 100 )
{
	SetPosition( D3DXVECTOR3( 0.0f, 500.0f, 0.5f ));

	AddComponent<SpriteComponent>( )->LoadSprite( L"Resources\\Units\\Player\\Obstacle.png" );
	AddComponent<BoxColliderComponent>( )->SetCollisionSize( FRECT{ 6.0f, 0.0f, 60.0f, 26.0f });

	AddController( new PlayerMoveController );
	SetHPBar( new CPlayerHPBar );
}
예제 #4
0
void cMainMode::_InitPlayer()
{
	mPlayer = new cPlayer(mInitPlayerInfo);

	AddObject(mPlayer);

	mCameraController = new GmCameraController;
	mCameraController->SetObject(mPlayer);
	AddController(mCameraController);
}
예제 #5
0
void XAICUnitDGunControllerHandler::OnEvent(const XAIIEvent* e) {
	switch (e->type) {
		case XAI_EVENT_UNIT_FINISHED: {
			const XAIUnitFinishedEvent* ee = dynamic_cast<const XAIUnitFinishedEvent*>(e);

			const XAICUnit*   unit = xaih->unitHandler->GetUnitByID(ee->unitID);
			const XAIUnitDef* uDef = unit->GetUnitDefPtr();

			if (uDef->GetDGunWeaponDef() != 0) {
				AddController(ee->unitID);
			}
		} break;

		case XAI_EVENT_UNIT_DESTROYED: {
			const XAIUnitDestroyedEvent* ee = dynamic_cast<const XAIUnitDestroyedEvent*>(e);

			// silly to call for every destroyed unit, but
			// we can no longer retrieve the UnitDef here
			DelController(ee->unitID);
		} break;

		case XAI_EVENT_ENEMY_DESTROYED: {
			const XAIEnemyDestroyedEvent* ee = dynamic_cast<const XAIEnemyDestroyedEvent*>(e);

			std::map<int, XAICUnitDGunController*>::iterator it;

			for (it = controllers.begin(); it != controllers.end(); it++) {
				it->second->EnemyDestroyed(ee->attackerID, ee->unitID);
			}
		} break;

		case XAI_EVENT_UPDATE: {
			std::map<int, XAICUnitDGunController*>::iterator it;

			for (it = controllers.begin(); it != controllers.end(); it++) {
				it->second->Update();
			}
		} break;

		default: {
		} break;
	}
}
void PIN_GameControllerManager::AddGameController(int joy_index)
{
    printf("Checking joystick #%d...\n",joy_index);
    printf("Name: %s\n",SDL_JoystickNameForIndex(joy_index));

    if(SDL_IsGameController(joy_index))
    {
        printf("This joystick is a gamecontroller. Adding to controller pool...\n");
        printf("Game controller name: %s\n",SDL_GameControllerNameForIndex(joy_index));

        PIN_GameControllerEntry* newEntry = CreateGameControllerEntry();

        SDL_GameController* ctrl =  SDL_GameControllerOpen(joy_index);
        SDL_Joystick* joy = SDL_GameControllerGetJoystick(ctrl);

        SDL_JoystickGUID joyGUID = SDL_JoystickGetGUID(joy);
        char strGUID[PIN_BUFFER_SIZE];
        SDL_JoystickGetGUIDString(joyGUID,strGUID, PIN_BUFFER_SIZE);

        printf("Controller GUID: %s\n",strGUID);
        SDL_JoystickID joyID  = SDL_JoystickInstanceID(joy);
        if(joyID < 0)
        {
            printf("Error: %s\n",SDL_GetError());
            delete newEntry;
            return;
        }
        else
        {
            newEntry->ControllerID = joyID + PIN_ID_JOYSTICK;
        }

        newEntry->Controller = ctrl;
        newEntry->Joystick = joy;

        newEntry->AxisDeadZone = 8000;

        newEntry->GlobalKeys[PIN_GK_UP]     = BuildComboSet(newEntry,SDL_GameControllerGetStringForButton(SDL_CONTROLLER_BUTTON_DPAD_UP));
        newEntry->GlobalKeys[PIN_GK_DOWN]   = BuildComboSet(newEntry,SDL_GameControllerGetStringForButton(SDL_CONTROLLER_BUTTON_DPAD_DOWN));
        newEntry->GlobalKeys[PIN_GK_LEFT]   = BuildComboSet(newEntry,SDL_GameControllerGetStringForButton(SDL_CONTROLLER_BUTTON_DPAD_LEFT));
        newEntry->GlobalKeys[PIN_GK_RIGHT]  = BuildComboSet(newEntry,SDL_GameControllerGetStringForButton(SDL_CONTROLLER_BUTTON_DPAD_RIGHT));
        newEntry->GlobalKeys[PIN_GK_ENTER]  = BuildComboSet(newEntry,SDL_GameControllerGetStringForButton(SDL_CONTROLLER_BUTTON_A));
        newEntry->GlobalKeys[PIN_GK_BACK]   = BuildComboSet(newEntry,SDL_GameControllerGetStringForButton(SDL_CONTROLLER_BUTTON_B));

        PIN_KeyList lstDef = _controlType->DEFAULT_KEYS;

        printf("Setting control type definitions...\n");

        AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_UP,lstDef,PIN_KEY_UP);
        AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_DOWN,lstDef,PIN_KEY_DOWN);
        AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_LEFT,lstDef,PIN_KEY_LEFT);
        AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_RIGHT,lstDef,PIN_KEY_RIGHT);
        AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_ENTER,lstDef,PIN_KEY_ENTER);
        AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_BACK,lstDef,PIN_KEY_BACK);

        for(PIN_MappingList::iterator it = _mappingList->begin(); it!= _mappingList->end(); ++it)
        {
            PIN_Mapping* m = *it;
            if(boost::equals(m->GUID,strGUID))
            {
                printf("Setting mapping-specific definitions...\n");
                printf("Mapping name: '%s'\n",m->NAME);

                PIN_KeyList m_keys = m->DEFAULT_KEYS;

                newEntry->SourceMapping = m;

                newEntry->AxisDeadZone = m->DEADZONE;

                AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_UP,m_keys,PIN_KEY_UP);
                AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_DOWN,m_keys,PIN_KEY_DOWN);
                AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_LEFT,m_keys,PIN_KEY_LEFT);
                AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_RIGHT,m_keys,PIN_KEY_RIGHT);
                AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_ENTER,m_keys,PIN_KEY_ENTER);
                AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_BACK,m_keys,PIN_KEY_BACK);

                break;
            }
        }

        if(_currentGameMode != NULL)
        {
            UpdateControllerGameMode(newEntry);
        }

        //_controllerList.push_back(newEntry);
        AddController(newEntry);
    }
    else
    {
        printf("This joystick is NOT a gamecontroller. It can't be used.\n");
    }
}
예제 #7
0
PIN_KeyboardManager::PIN_KeyboardManager(PIN_ControlType* controlType, PIN_MappingList* mappingList, PIN_ControllerBaseList* masterControllerList)
    : PIN_ManagerBase(controlType, mappingList, masterControllerList)
{
    std::string strKeyList("\\b(?:");

    bool firstItem = true;
    for(int x = SDL_SCANCODE_A; x <= SDL_SCANCODE_SLEEP; x++)
    {
        PIN_String strScanCode = SDL_GetScancodeName((SDL_Scancode)x);
        if(!boost::equals(strScanCode,""))
        {
            if(!firstItem)
            {
                strKeyList += "|";
            }
            else
            {
                firstItem = false;
            }
            std::string strCode(strScanCode);
            strCode = PAUX_Extensors::regex_escape(strCode);
            strKeyList+= "(?:" + strCode + ")";
        }
    }
    strKeyList+=")\\b";

    _keyListRegex = boost::regex(strKeyList,boost::regex::perl|boost::regex::icase);

    PIN_KeyList lstDef = controlType->DEFAULT_KEYS;

    if(_mappingList->size() == 0)
    {
        printf("No keyboard mappings. Assuming 1 controller.\n");

        PIN_KeyboardController* ctrl = CreateKeyboardController();
        ctrl->GlobalKeys[PIN_GK_UP]     = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_UP));
        ctrl->GlobalKeys[PIN_GK_DOWN]   = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_DOWN));
        ctrl->GlobalKeys[PIN_GK_LEFT]   = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_LEFT));
        ctrl->GlobalKeys[PIN_GK_RIGHT]  = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_RIGHT));
        ctrl->GlobalKeys[PIN_GK_ENTER]  = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_RETURN));
        ctrl->GlobalKeys[PIN_GK_BACK]   = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_BACKSPACE));

		printf("Setting control type definitions...\n");
		AssignKey(&(ctrl->GlobalKeys),PIN_GK_UP,lstDef,PIN_KEY_UP);
        AssignKey(&(ctrl->GlobalKeys),PIN_GK_DOWN,lstDef,PIN_KEY_DOWN);
        AssignKey(&(ctrl->GlobalKeys),PIN_GK_LEFT,lstDef,PIN_KEY_LEFT);
        AssignKey(&(ctrl->GlobalKeys),PIN_GK_RIGHT,lstDef,PIN_KEY_RIGHT);
        AssignKey(&(ctrl->GlobalKeys),PIN_GK_ENTER,lstDef,PIN_KEY_ENTER);
        AssignKey(&(ctrl->GlobalKeys),PIN_GK_BACK,lstDef,PIN_KEY_BACK);

		AddController(ctrl);
        printf("Done.\n");
    }
    else
    {
        PIN_MappingList::iterator it;
        for(it = _mappingList->begin(); it!=_mappingList->end(); ++it)
        {
            PIN_Mapping* m = *it;
            PIN_KeyList m_keys = m->DEFAULT_KEYS;

            PIN_KeyboardController* ctrl = CreateKeyboardController();

            printf("Creating controller ID 0x%xl for '%s'...\n",ctrl->ControllerID, m->NAME);

            ctrl->SourceMapping = m;

            ctrl->GlobalKeys[PIN_GK_UP]     = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_UP));
            ctrl->GlobalKeys[PIN_GK_DOWN]   = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_DOWN));
            ctrl->GlobalKeys[PIN_GK_LEFT]   = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_LEFT));
            ctrl->GlobalKeys[PIN_GK_RIGHT]  = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_RIGHT));
            ctrl->GlobalKeys[PIN_GK_ENTER]  = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_RETURN));
            ctrl->GlobalKeys[PIN_GK_BACK]   = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_BACKSPACE));

			printf("Setting control type definitions...\n");

			AssignKey(&(ctrl->GlobalKeys),PIN_GK_UP,lstDef,PIN_KEY_UP);
			AssignKey(&(ctrl->GlobalKeys),PIN_GK_DOWN,lstDef,PIN_KEY_DOWN);
			AssignKey(&(ctrl->GlobalKeys),PIN_GK_LEFT,lstDef,PIN_KEY_LEFT);
			AssignKey(&(ctrl->GlobalKeys),PIN_GK_RIGHT,lstDef,PIN_KEY_RIGHT);
			AssignKey(&(ctrl->GlobalKeys),PIN_GK_ENTER,lstDef,PIN_KEY_ENTER);
			AssignKey(&(ctrl->GlobalKeys),PIN_GK_BACK,lstDef,PIN_KEY_BACK);

            printf("Setting mapping-specific definitions...\n");
            AssignKey(&(ctrl->GlobalKeys),PIN_GK_UP,m_keys,PIN_KEY_UP);
            AssignKey(&(ctrl->GlobalKeys),PIN_GK_DOWN,m_keys,PIN_KEY_DOWN);
            AssignKey(&(ctrl->GlobalKeys),PIN_GK_LEFT,m_keys,PIN_KEY_LEFT);
            AssignKey(&(ctrl->GlobalKeys),PIN_GK_RIGHT,m_keys,PIN_KEY_RIGHT);
            AssignKey(&(ctrl->GlobalKeys),PIN_GK_ENTER,m_keys,PIN_KEY_ENTER);
            AssignKey(&(ctrl->GlobalKeys),PIN_GK_BACK,m_keys,PIN_KEY_BACK);

            AddController(ctrl);
        }
    }
}