我有两个精灵,一个“轨道”并跟随另一个。我已经开始工作了,所以一条鱼会跟随屏幕周围的气泡(它会朝该方向旋转并朝它移动)。这是关于它如何工作以及我想要发生的事情的图表:
我试图弄清楚如何将我的鱼“缓冲”到远离气泡中心的正确(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;
}
}
任何想法或帮助表示赞赏。谢谢