最近有个机顶盒项目,需要用到遥控器的方向键在游戏中控制方向。
如果是一般Android设备、iOS设备或Win32平台,cocos2d-x提供了“CCAccelerometer”类,可用于游戏控制UI。但由于机顶盒在使用过程中是使用遥控器与玩家交互,而遥控器中缺少GSenser,所以只能暂时使用方向键和中键。好在机顶盒厂家使用了Android标准的键值,方向键和中键与Andriod DPAD按键一一对应。
下面讲一下如何修改cocos2d-x,以使我们在游戏中能感知DPAD按键消息。
一 修改cocos2dx\keypad_dispatcher\CCKeypadDelegate.h
为” CCKeypadDelegate”添加2个虚函数,完成后为:
- classCC_DLLCCKeypadDelegate
- {
- public:
- //Thebackkeyclicked
- virtualvoidkeyBackClicked(){}
- //Themenukeyclicked.onlyavailableonwophone&android
- voidkeyMenuClicked(){};
- //Theenterkeyclicked.onlyavailableonwin32&android
- voidkeyEnterClicked(){};
- //Thearrowkeyclicked.onlyavailableonwin32&android
- voidkeyArrowClicked(intarrow){};
- };
其中” keyEnterClicked”函数用于响应”Enter”键,”keyArrowClicked”函数用于响应方向键消息。
二 cocos2dx\keypad_dispatcher\CCKeypadDispatcher.h
修改枚举 ccKeypadMSGType的定义为:
copy