// ------------------------------------------------------------------- // 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); }
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); }
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 ); }
void cMainMode::_InitPlayer() { mPlayer = new cPlayer(mInitPlayerInfo); AddObject(mPlayer); mCameraController = new GmCameraController; mCameraController->SetObject(mPlayer); AddController(mCameraController); }
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"); } }
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); } } }