CCSprite
で体に取り付けられている がありますb2world
。誰かが触れたら、触れた場所で動かしたい。通常のスプライトでは問題なく動作しますが、ボディを持つスプライトでは動作しません。それはタッチを取得しますが、スプライトを動かしません(ボディはスプライトに従うか、その逆ですか?)どうすればよいですか?タッチに対して相対的に力を加えることが問題です..
- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint currentPosition = [touch locationInView: [touch view]];
//detect a touch ont the button
for (b2Body* b = world->GetBodyList(); b; b = b->GetNext())
{
CGPoint location=[[CCDirector sharedDirector] convertToGL: currentPosition];
CCSprite *tempSprite = (CCSprite *) b->GetUserData();
if( tempSprite.tag==2 )
{
if(CGRectContainsPoint([tempSprite boundingBox], location))
{
tempSprite.position=location;
NSLog(@"touched");
}
}
}
}