为什么添加上while语句,程序运行后就像卡住了一样

代码如下:

void HelloWorld::asd(){
	while(i==0){	//while语句删除后,程序运行正常。	
		Sprite* node3=Sprite::create("ty.png");
		node3->setPosition(node2->getPosition());
		this->addChild(node3);
		auto moveTo = MoveTo::create(1, Vec2(300,300));
		node3->runAction(moveTo);
		SimpleAudioEngine::getInstance()->playEffect("yingxiao.mp3", false, 1.0, 1.0, 1.0);
		this->scheduleOnce(CC_SCHEDULE_SELECTOR(HelloWorld::popScene), 300);			
	}
}

不懂你要实现什么功能,我只是好奇你那个 i 的值是啥?
你确定 i == 0 , i值不变的话,确定不会死循环?

打出猿庭,回炉再造

5赞

建议先来个c入门到放弃吧!

1赞

建议关闭该贴

你都没定义i,循环体内也没对i做操作,循环个鬼啊,不死循环才怪呢。

可能定义了全局的i, 但i值一直不变 如果没有定义c++应该报错啦

这个要打入小黑屋才行。

开除猿籍!!

1赞

while 不是 if,
不是当条件满足时就执行{}内代码,是当条件满足时一直循环执行{}内代码,直到不满足条件

有新人就有希望 :100:

开除猿籍+1

这篇水帖.

打回猿人 重造 :joy:

开除猿籍+1

看来我发得不够全面,代码如下:

void HelloWorld::onMouseDown(Event *event){
   i=0;
   if(i==0){
	   this->asd();
   }
}

 void HelloWorld::onMouseUp(Event *event){
    i=1;
 }

 void HelloWorld::asd(){
	while(i==0){		
		Sprite* node3=Sprite::create("ty.png");
		node3->setPosition(node2->getPosition());
		this->addChild(node3);
		auto moveTo = MoveTo::create(1, Vec2(300,300));
		node3->runAction(moveTo);
		SimpleAudioEngine::getInstance()->playEffect("yingxiao.mp3", false, 1.0, 1.0, 1.0);
		this->scheduleOnce(CC_SCHEDULE_SELECTOR(HelloWorld::popScene), 300);			
	}
 }

 void HelloWorld::popScene(float t)
 {
 }

完整代码已阅
开除猿籍+10086

1赞

看完我都体会到马斯克猿宇宙的加密货币有多奥妙了

完整代码已阅
开除猿籍+10000000000000000000000086

opengl的while显示循环吗? 别这么干