Iphone 触摸ccsprite后如何更改cocos2d中移动box2d对象的速度

Iphone 触摸ccsprite后如何更改cocos2d中移动box2d对象的速度,iphone,cocos2d-iphone,physics,game-physics,Iphone,Cocos2d Iphone,Physics,Game Physics,我正在使用cocos2d开发一款ios游戏。 在我的场景中,云以不同的邪恶程度从右向左移动。 1) 我只想当用户点击云时,它从左向右移动得更快。 2) 当云离开视野时,它再次从左侧出现,并开始以正常速度向左移动。如何从左向右移动云?使用CCMoveTo或ApplyLinearVelocity 如果是使用CCMoveTo,则在用户轻触时停止操作,然后以不同的速度再次运行CCMoveTo。1。)检测用户触摸的云,增加身体的速度。要立即提高速度,请设置与云关联的b2body的线速度。要逐渐提高速度,请

我正在使用cocos2d开发一款ios游戏。 在我的场景中,云以不同的邪恶程度从右向左移动。 1) 我只想当用户点击云时,它从左向右移动得更快。
2) 当云离开视野时,它再次从左侧出现,并开始以正常速度向左移动。

如何从左向右移动云?使用CCMoveTo或ApplyLinearVelocity

如果是使用CCMoveTo,则在用户轻触时停止操作,然后以不同的速度再次运行CCMoveTo。

1。)检测用户触摸的云,增加身体的速度。要立即提高速度,请设置与云关联的b2body的线速度。要逐渐提高速度,请施加力/脉冲。例如:

在中国,接触开始了

UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:[touch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
for(Cloud *cloud in clouds) {

   if (CGRectContainsPoint( cloud.boudingBox, location )) {

      b2Body *b = cloud.b2Body;
      b2Vec2 *currentVelocity = b->GetLinearVelocity();
      b2Vec2 *newVelocity = b2Vec2(currentVelocity.x + addToSpeed, currentVelocity.y);
      b->SetLinearVelocity( newVelocity );

   }

}
2.)在更新方法中检测云体位置何时移动到视图之外。然后,您可以使用sprite销毁云体并在所需位置创建一个新的云体,或者使用b2Body->SetTransform()使用SetLinearVelocity(startingSpeed)将云体移动到新位置