我有一個跟蹤並跟隨屏幕上物體的精靈,向它們移動。Sprite因爲跟蹤而產生跳動效果
的方法運行的時間表,基本上是這樣的:
- (void) nextFrame:(ccTime)dt {
//calculate distance between the bubble and the fish
float dx = bubbleToChase.position.x - fish.position.x;
float dy = bubbleToChase.position.y - fish.position.y;
float d = sqrt(dx*dx + dy*dy);
float v = 400;
if (d > 190){
NSLog(@"moving the fish!");
fish.position = ccp(fish.position.x + dx/d * v *dt,
fish.position.y + dy/d * v *dt);
}
}
代碼工作得很好,當距離大於190種的魚會朝它遊。
問題是對象具有物理特性,所以它們在屏幕上滑動。這會對魚精靈產生跳躍/ stag effect的效果,因爲一旦魚到達氣泡,魚就會停止,但隨着氣泡逐漸消失(d> 190),隨後抖動並快速停止。
我該如何擺脫這種跳汰效應?我想阻止魚一旦到達泡沫的位置就移動。或者任何可以平滑的選擇。任何幫助表示感謝,謝謝。
芝諾的箭頭。對於每一步,將魚的速度減半。 – Dtyree
當你的距離達到時,你可以將魚瞄準另一個泡泡嗎?否則,當它在你的距離範圍內時,隨機的時間你可以「停放」魚,並在到期時追蹤.....取決於你「接觸」氣泡時你想要的行爲。 – Dtyree
停泊魚可以工作。什麼是最好的方式來做到這一點? – user339946