2011-10-27 32 views
0

我試圖製作一個遊戲,用戶應該在屏幕上上下拖動一個精靈,避免傳入障礙物。最後一個回答here幫助我在屏幕上拖動精靈,但是我想設置精靈可以移動的最大速度(希望看起來自然而然的加速/減速),所以它不會太容易避免物體。在cocos2d中爲iPhone拖動精靈 - 最大速度爲

有沒有人知道我可以如何修改代碼來實現這一點,或者有沒有另一種方式呢?

謝謝:)

回答

2

你需要保持CGPoint destinationPosition變量,它是你的手指的位置和使用更新循環改變它的位置:

-(void) update:(ccTime) dt 
{ 
    CGPoint currentPosition = draggableObject.position.x; 
    if (destination.x != currentPosition.x) 
    { 
     currentPosition.x += (destination.x - currentPosition.x)/5.0f; // This 5.0f is how fast you want the object to move to it's destination 
    } 
    if (destination.y != currentPosition.y) 
    { 
     currentPosition.y += (destination.y - currentPosition.y)/5.0f; 
    } 
    draggableObject.postion = currentPosition; 
} 

if S,你可能想要檢查對象是否彼此靠近,而不是完全相同的數字以允許舍入錯誤。

+0

甜!像魅力一樣工作,謝謝! :) – Jambaman

0

你只需要有一個if語句在你正在使用的任何時間表更新,如時間或觸摸,或其他。

我假設你有x/y速度?就在您的更新聲明中,無論您的加速度在哪裏 -

if(acceleration.x > 20){ 
acceleration.x = 20; 
} 

if(acceleration.y > 20){ 
acceleration.y = 20; 
}