Ello All,
我對C++非常陌生,我一直試圖讓這個工作時間超過我的承認。所以我已經離開了下面的參考資料,並讓控制器在控制檯應用程序中工作。 XInput 360控制器不能與cocos2d-x一起工作
下面是結果 xbox360Controller.h xbox360Controller.cpp
從那裏,我試圖把它用了cocos2d-x工作使用steve tranby's post at the bottom of this thread(他補充說)並將其改編爲360手柄。
雖然我已經得到了鍵盤事件的工作 (這是標準的Windows輸入,因此不壞)
LRESULT CCEGLView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
BOOL bProcessed = FALSE;
CCLog("Message sent = %d",message);
//note* only showing relavant sections of code for brevity
switch (message)
{
case WM_KEYDOWN:
if (wParam == VK_F1 || wParam == VK_F2)
{
CCDirector* pDirector = CCDirector::sharedDirector();
if (GetKeyState(VK_LSHIFT) getKeypadDispatcher()->dispatchKeypadMSG(wParam == VK_F1 ? kTypeBackClicked : kTypeMenuClicked);
}
}
else if (wParam == VK_ESCAPE)
{
CCDirector::sharedDirector()->getKeypadDispatcher()->dispatchKeypadMSG(kTypeBackClicked);
}
else
{
CCDirector::sharedDirector()->getKeypadDispatcher()->dispatchKeypadDown(wParam);
}
if (m_lpfnAccelerometerKeyHook!=NULL)
{
(*m_lpfnAccelerometerKeyHook)(message,wParam,lParam);
}
break;
default:
if (m_wndproc)
{
m_wndproc(message, wParam, lParam, &bProcessed);
if (bProcessed) break;
}
return DefWindowProc(m_hWnd, message, wParam, lParam);
}
if (m_wndproc && !bProcessed)
{
m_wndproc(message, wParam, lParam, &bProcessed);
}
return 0;
}
我想不通的地方把控制器邏輯。 我在的WindowProc方法試圖 ,並意識到,沒有工作,因爲它只是 火災作爲回調的WindowProc事件(我可能沒有正確的行話吧,對不起) 我已經最接近它得到的東西,激發往往不夠檢查是在點
static LRESULT CALLBACK _WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
CCDirector* pDirector = CCDirector::sharedDirector();
XboxController* player1 = new XboxController(GamePadIndex_One);
if(player1->IsConnected())
{
player1->Update();
for(int i =0;iState._buttons[i]==true)
{
//CCApplication::sharedApplication()->getKe
pDirector->getKeypadDispatcher()->dispatchKeypadDown(i);
}
}
}
delete player1;
if (s_pMainWindow && s_pMainWindow->getHWnd() == hWnd)
{
return s_pMainWindow->WindowProc(uMsg, wParam, lParam);
}
else
{
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
}
完整的代碼here 和源是在github上Here。 任何人都知道放置XboxController實例的正確位置,以便它能夠正確響應KeypadDown
?