關於多點觸控的縮放範例 (附工程與運行圖)

在範例專案下 ( /03_gameplay/01_player_control/MultiTouchInput/ )
有寫多点触摸的範例

我使用該段的程式碼時,
發現該段程式碼有點小問題,

//缩放
var distance = touchPoint1.sub(touchPoint2);
var delta = delta1.sub(delta2);
//上面這樣會產生異常,會提示 h.sub 不是一個method

//修改成以下就會正常
var distance = cc.pSub( touchPoint1, touchPoint2 );
var delta = cc.pSub( delta1, delta2 );

範例的程式碼在 GitHub - /MultiTouchInput/MultiTouchInputCtrl.js

接著,
我照著該段範例,使用 @atmy 同學提供的範本進行修改,
製作了一個可以用手指放大縮小的範例,

範例工程: cccMultiTouchTest.zip (61.0 KB)

這是在Android真機上運行時圖片:

目前可以依兩手指的縮放,對Cocos2dx的圖片進行縮放,

但是很奇怪的是,這個計算出來的 scale,似乎不太準確,
應該說,手指對該物件進行縮放時,因為手指的移動每次都會觸發,
這樣會造成縮放的大小,總是會卡在同一個比例區間,

不知道有沒有高手有解法?

不好意思,是我耍笨了,

我直接把最後的結果,
跟目標的scale相乘後,再assign回去目標的sacle就可以了…

var newScale = logo.scale * scale;
if( newScale < 0.25 ) newScale = 0.25; //限制縮放大小
if( newScale > 3.00 ) newScale = 3; //限制縮放大小
logo.scale = newScale;