Created
December 31, 2015 17:04
-
-
Save pineoc/4cc3c079bfaee2f5bf40 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void HelloWorld::registerControllerListener() | |
{ | |
//create an evnetListenerController | |
_listener = EventListenerController::create(); | |
//bind onConneected event call function | |
_listener->onConnected = CC_CALLBACK_2(HelloWorld::onConnectController,this); | |
//bind disconnect event call function | |
_listener->onDisconnected = CC_CALLBACK_2(HelloWorld::onDisconnectedController,this); | |
//bind onKeyDown event call function | |
_listener->onKeyDown = CC_CALLBACK_3(HelloWorld::onKeyDown, this); | |
//bind onKeyUp event call function | |
_listener->onKeyUp = CC_CALLBACK_3(HelloWorld::onKeyUp, this); | |
//bind onAxis event call function, onAxis will be called when analog stick is changed | |
_listener->onAxisEvent = CC_CALLBACK_3(HelloWorld::onAxisEvent, this); | |
//Activate the listener into the event dispatcher | |
_eventDispatcher->addEventListenerWithSceneGraphPriority(_listener, this); | |
//This function should be called for iOS platform | |
Controller::startDiscoveryController(); | |
} | |
//Controller is the obejects of the Controller,keyCode means the keycode of the controller you click down | |
void HelloWorld::onKeyDown(cocos2d::Controller *controller, int keyCode, cocos2d::Event *event) | |
{ | |
CCLOG("KeyDown:%d", keyCode); | |
} | |
void HelloWorld::onKeyUp(cocos2d::Controller *controller, int keyCode, cocos2d::Event *event) | |
{ | |
//You can get the controller by tag, deviceId or devicename if there are multiple controllers | |
CCLOG("tag:%d DeviceId:%d DeviceName:%s", controller->getTag(), controller->getDeviceId(), controller->getDeviceName().c_str()); | |
CCLOG("KeyUp:%d", keyCode); | |
} | |
//The axis includes X-axis and Y-axis and its range is from -1 to 1. X-axis is start from left to right and Y-axis is bottom to top. | |
void HelloWorld::onAxisEvent(cocos2d::Controller* controller, int keyCode, cocos2d::Event* event) | |
{ | |
const auto& keyStatus = controller->getKeyStatus(keyCode); | |
CCLOG("Axis KeyCode:%d Axis Value:%f", keyCode, keyStatus.value); | |
} | |
void HelloWorld::onConnectController(Controller* controller, Event* event) | |
{ | |
CCLOG("Game controller connected"); | |
} | |
void HelloWorld::onDisconnectedController(Controller* controller, Event* event) | |
{ | |
CCLOG("Game controller disconnected"); | |
} | |
bool HelloWorld::init() | |
{ | |
////////////////////////////// | |
// 1. super init first | |
if ( !Layer::init() ) | |
{ | |
return false; | |
} | |
...... | |
...... | |
registerControllerListener(); | |
return true; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment