bool sign2 = true;
bool sign2 = true;
void GameLayer::onTouchMoved(Touch *touch, Event *unused){
if(sign){
sign = false;
**
if(sign2){
CCLOG("RUNNING!");
sign2 = false;
sign = true;
}else{
sign2 = true;
}
**
}
}
如果上述代码顺序运行,则会出现无限循环的RUNNING的LOG:
RUNNING!RUNNING!
......
但实际上并不会出现无限个running,只可能出现一个或者两个RUNNING!
猜测:
触摸时onTouchMoved会多次被调用,进入if(sign)判断里面的不止一个触摸事件。这样即sign被赋值true后又被赋值false,则出现无法再进入外判断体的情况。