cocos2d-3.0 Helloworld::onTouchMoved的处理机制的推測

本文探讨了一个游戏开发中常见的触摸事件处理问题,通过具体的代码示例解释了为什么触摸事件可能导致无限循环的假象,实际上只会触发一次或两次。文章还分析了导致此现象的原因,并给出了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,则出现无法再进入外推断体的情况。

转载于:https://www.cnblogs.com/lcchuguo/p/4043495.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值