Pytanie tylko to, co mam do powiedzenia na ten temat. Muszę wiedzieć, jak radzić sobie ze specjalnymi naciśnięciami klawiszy, takimi jak back
, menu
itp. W Android NDK. Używam Cocos2dX, więc jeśli możesz dać mi odpowiedź na specyfikację Cocos2dX, która byłaby świetna.Android NDK: jak obsługiwać naciśnięcie klawisza Back w Cocos2dx?
5
A
Odpowiedz
7
W cocos2dx każdy CCLayer
pobiera następujące metody, które mogą być nadpisane dodać funkcję do nich:
class CC_DLL CCKeypadDelegate
{
public:
// The back key clicked
virtual void keyBackClicked() {}
// The menu key clicked. only avialble on wophone & android
virtual void keyMenuClicked() {};
};
CCLayer
dziedziczy CCKeypadDelegate
. A każdy ekran może zapewnić implementację tych funkcji.
1
W cocos2d-x Trzeba zrobić wdrożyć
virtual void keyBackClicked();
a także to
this->setKeyPadEnable(true);
w klasie .cpp
1
Włącz klawiaturę: this->setKeypadEnabled(true);
Zastąp onKeyReleased m ethod: virtual void onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event);
Sprawdź keyCode:
void GameScene::onKeyReleased(EventKeyboard::KeyCode keyCode, cocos2d::Event *event)
{
if (keyCode == EventKeyboard::KeyCode::KEY_BACKSPACE) {
CCLOG("You pressed back button");
}
else if(keyCode == EventKeyboard::KeyCode::KEY_MENU)
{
CCLOG("You pressed menu button");
}
}
0
Jeśli klasa nie jest dziedziczą z CClayer
, to można sobie z tym poradzić poprzez JNI
połączeń. W Cocos2dxGLSurfaceView.java
obsługiwać tyłu i klawisz menu z onKeyDown
funkcji
public boolean onKeyDown(final int pKeyCode, final KeyEvent pKeyEvent)
Powiązane problemy
- 1. Android - Uzyskaj naciśnięcie klawisza klawiatury
- 2. Jak obsługiwać naciśnięcie klawisza Enter za pomocą interfejsu internetowego Dart?
- 3. Jak wykryć naciśnięcie dowolnego klawisza?
- 4. klawisz funkcyjny naciśnięcie klawisza
- 5. Python - Wykryj naciśnięcie klawisza
- 6. Jak czekać na naciśnięcie klawisza w R?
- 7. Jak symulować naciśnięcie klawisza Enter w rspec
- 8. Jak czekać na naciśnięcie klawisza w Clojure
- 9. Jak mogę symulować naciśnięcie klawisza w JavaScript?
- 10. Android: Ukrywanie klawiaturę w zastąpionej „Gotowe” naciśnięcie klawisza z EditText
- 11. Przechwytywanie "Enter" naciśnięcie klawisza numerycznego w Android/Cordova/nokaut
- 12. Jak wykonać naciśnięcie klawisza wewnątrz powłoki?
- 13. Jak wyświetlić klawiaturę przez naciśnięcie klawisza NSButton?
- 14. naciśnięcie klawisza, aby wyczyścić ekran w psql?
- 15. naciśnięcie klawisza jQuery w lewo/prawo nawigacja
- 16. Naciśnięcie klawisza Win + X, Alt-Tab programowo
- 17. Zatrzymaj naciśnięcie klawisza od wstrzymania. (JQuery)
- 18. Jak powiązać naciśnięcie klawisza z komendą DelegateCommand w złożonym WPF?
- 19. Jak mogę symulować interakcję użytkownika (naciśnięcie klawisza) w Qt?
- 20. Jak symulować SHIFT + naciśnięcie klawisza myszy w java
- 21. Jak zaakceptować naciśnięcie klawisza python w wierszu poleceń?
- 22. Android - Przycisk Back Back i fragment nie działa
- 23. Zautomatyzowane naciśnięcie klawisza "PrtScn" działa jak "Alt + PrtScrn"
- 24. Jak usunąć naciśnięcie klawisza z danych wejściowych za pomocą jquery?
- 25. Jak uzyskać naciśnięcie ostatniego klawisza ze strzałką za pomocą przekleństw?
- 26. Długie naciśnięcie przycisku Android
- 27. Złap naciśnięcie klawisza Enter w polu tekstowym wprowadzania AS3
- 28. pthread_cancel() alternatywy w Android NDK?
- 29. Android Listener wykrywa naciśnięcie ekranu
- 30. Android NDK: jak zastąpić onBackPressed w NativeActivity bez java?
myślę, że trzeba dodać setKeypadEnabled (true); gdzieś, żeby to działało. –
Upewnij się, że używasz coco2d-x 2.1 lub nowszego. – Ankur