我試圖製作一個遊戲,用戶應該在屏幕上上下拖動一個精靈,避免傳入障礙物。最後一個回答here幫助我在屏幕上拖動精靈,但是我想設置精靈可以移動的最大速度(希望看起來自然而然的加速/減速),所以它不會太容易避免物體。在cocos2d中爲iPhone拖動精靈 - 最大速度爲
有沒有人知道我可以如何修改代碼來實現這一點,或者有沒有另一種方式呢?
謝謝:)
我試圖製作一個遊戲,用戶應該在屏幕上上下拖動一個精靈,避免傳入障礙物。最後一個回答here幫助我在屏幕上拖動精靈,但是我想設置精靈可以移動的最大速度(希望看起來自然而然的加速/減速),所以它不會太容易避免物體。在cocos2d中爲iPhone拖動精靈 - 最大速度爲
有沒有人知道我可以如何修改代碼來實現這一點,或者有沒有另一種方式呢?
謝謝:)
你需要保持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,你可能想要檢查對象是否彼此靠近,而不是完全相同的數字以允許舍入錯誤。
你只需要有一個if語句在你正在使用的任何時間表更新,如時間或觸摸,或其他。
我假設你有x/y速度?就在您的更新聲明中,無論您的加速度在哪裏 -
if(acceleration.x > 20){
acceleration.x = 20;
}
if(acceleration.y > 20){
acceleration.y = 20;
}
甜!像魅力一樣工作,謝謝! :) – Jambaman