天天看點

Cocos2dx 小技巧(十四)ScrollView實作縮放效果

這階段心緒比較亂,是以這篇開頭就不扯淡了。(誰說大姨夫來了我跟誰急!~~)

說到大姨夫我突然想到英雄聯盟有個美女解說叫伊芙蕾亞,她的堂弟ID竟然叫:姨夫累呀,好笑吧(呵呵,有點冷~~額,我都說不扯淡了)。

------------

前天有個網友問我一些關于scrollView的用法,由于在QQ上實在講不清,是以就利用晚上的時間寫這篇部落格出來了。

本篇要實作的功能是用scrollView 拖動對象時,對象移動到某個固定範圍會有放大、縮小的效果。下面開始。

在進入正題前我先簡短的介紹下scrollView應該怎麼用吧(想必大家也都會用~~):

1、記得在頭檔案裡包含 “../extensions/cocos-ext.h",順便聲明下作用域:USING_NS_CC_EXT;

2、在類的繼承裡 加上ScrollViewDelegate,如下:

3、在類的聲明中,加上三個scrollView的委托函數,如下:

4、實在不想繼續說廢話了,直接看執行個體吧。

先看頭檔案:

下面看定義

接下來看下scrollView的委托函數,這裡隻要看scrollViewDidScroll 就好了。實作效果是對象在某個坐标範圍内移動時會有縮放效果。

恩,注釋寫的很清楚啦,但我還是要稍微補充一些東東:我們應該知道,對象放到滾動層上(如scroll_layer->addChild(boy)),那麼不管對象在scrollView上如何移動,它獲得的坐标都是不會變的(如boy->getPosition()是不變的數值),這種情況下,如果我們想實作對象在某個坐标範圍内會有縮放效果,那麼隻是去擷取對象的坐标肯定是行不通的,是以肯定要找一個時刻在變化的”參照物”來利用下,該找什麼呢?沒錯,就是scrollView的偏移坐标(scrollView->getContentOffset())!隻要scrollView移動一下,那麼它的 偏移量也随之改變。我這裡就是利用對象的坐标與scrollView的偏移坐标之間不可告人的秘密,進而實作目前的目的。

下面看下運作效果。

Cocos2dx 小技巧(十四)ScrollView實作縮放效果
Cocos2dx 小技巧(十四)ScrollView實作縮放效果
Cocos2dx 小技巧(十四)ScrollView實作縮放效果

尊重原創,轉載請注明來源: