比方代码是:
bool GameScence::init() {
....
Device::setAccelerometerEnabled(true);
auto accelerationListener = EventListenerAcceleration::create(CC_CALLBACK_2(GameScence::onAcceleration, this));
_eventDispatcher->addEventListenerWithSceneGraphPriority(accelerationListener, this);
....
}
void GameScence::onEnter() {
Node::onEnter();
}
void GameScence::onExit() {
Node::onExit();
Device::setAccelerometerEnabled(false);
}
void GameScence::onAcceleration(Acceleration *acc, Event *event) {
....
}
同一个场景切换时,在onExit中需要把Accelerometer关闭,然后于init()中再重启并注册吗?
如果要,那init()中算不算注册了两次监听?
另外一个问题,init()中的Accelerometer与事件代码,移到onEnter()会不会比较好?