私は2つのスプライトを持っています。1つは「トラック」で、もう1つはフォローしています。私はすでにそれを機能させているので、魚は画面の周りの泡をたどります(それは方向に向かって回転するだけでなく、それに向かって移動します)。これがどのように機能し、私が何をしたいのかについての図です:
バブルの中心から正しい(x、y)離れた場所で魚を「バッファリング」する方法を見つけようとしていますが、方法がわかりません。これが私のコードです、それはスケジュール(60 *秒)で実行されます:
- (void) nextFrame:(ccTime)dt {
float dx = bubble.position.x - fish.position.x;
float dy = bubble.position.y - fish.position.y;
float d = sqrt(dx*dx + dy*dy);
float v = 200;
if (d > 1){
fish.position = ccp( fish.position.x + dx/d * v *dt,
fish.position.y + dy/d * v *dt);
} else {
fish.position = ccp(bubble.position.x, bubble.position.y);
}
float angle = CC_RADIANS_TO_DEGREES(atan2f(dx, dy));
angle -= 90;
fish.rotation = angle;
if(bubble.position.x < fish.position.x){
fish.flipY = YES;
} else {
fish.flipY = NO;
}
}
任意のアイデアや助けていただければ幸いです。ありがとう