2012-09-14 2 views
0

enter image description here 저는 cos2d를 사용하여 ios 게임을하고 있습니다. 내 장면 구름의 은 다른 vilocity를 사용하여 오른쪽에서 왼쪽 방향으로 이동합니다. 1) 사용자가 클라우드를 탭하면 왼쪽에서 오른쪽으로 더 빠르게 이동합니다. 2) 구름이 보이지 않을 때 왼쪽에서 다시 나타나고 정상 속도로 왼쪽으로 움직입니다.ccsprite를 터치 한 후 cocos2d에서 box2d 오브젝트를 이동하는 속도를 변경하는 방법

답변

0

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. ccTouchesBegan

)에 구름 b2body 위치가 업데이트 방법에서 볼 때 외부로 이동 감지 예 :. 그런 다음 스프라이트로 구름 몸체를 파괴하고 원하는 위치에 새 몸체를 만들거나 b2Body-> SetTransform()을 사용하여 SetLinearVelocity (startingSpeed)를 사용하여 본문을 새 위치로 이동하십시오

0

구름을 왼쪽에서 오른쪽으로 어떻게 움직입니까? CCMoveTo 또는 ApplyLinearVelocity가 있습니까?

CCMoveTo를 사용하는 경우 사용자가을 살짝 누른 다음 다른 속도로 CCMoveTo를 다시 실행하면 작업이 중지됩니다.

관련 문제