Skip to content

Instantly share code, notes, and snippets.

@pineoc
Created December 31, 2015 17:04
Show Gist options
  • Save pineoc/4cc3c079bfaee2f5bf40 to your computer and use it in GitHub Desktop.
Save pineoc/4cc3c079bfaee2f5bf40 to your computer and use it in GitHub Desktop.
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