直接上代碼,根據(jù)cocos2d-x 擴(kuò)展庫中的代碼改編的。

- //
- // MScrollView.h
- // Test ScrollView
- //
- // Created by Za aa on 13-4-25.
- //
- //
- #ifndef _MScrollView_h
- #define _MScrollView_h
- #include "cocos2d.h"
- usingnamespace
- //觸摸誤差
- constint
- //設(shè)置圖片修正時的移動速度
- constfloat
- classpublic
- public
- virtualbool
- //復(fù)寫繪圖函數(shù),每幀調(diào)用,添加了區(qū)域剔除
- void
- //CREATE_FUNC(MScrollView);
- //自定義--------
- //從多個精靈創(chuàng)建
- staticfloat
- //修改剔除區(qū)域
- voidfloatfloat
- //修改響應(yīng)區(qū)域
- void
- //根據(jù)間距初始化子層精靈
- boolfloat
- //修正動畫的函數(shù)
- void
- //拖動精靈,跟隨手指移動改變位置
- voidfloat
- //滾動到某一頁的函數(shù)
- voidfloat
- //頁面滾動動畫,moveto 動畫
- voidfloat
- //updata,用于如果拖動就停止moveto 動作
- voidfloat
- // 添加一個回調(diào)函數(shù),用于停止動畫
- void
- //重寫觸屏相關(guān)函數(shù)----
- virtualvoid
- virtualbool
- virtualvoid
- virtualvoid
- virtualvoid
- private
- //是否按下后移動
- bool
- //按下的點(diǎn)
- //抬起點(diǎn)
- //當(dāng)前的觸電
- //子層容器,用于滾動顯示
- //保存所有精靈
- //總頁數(shù)
- int
- //當(dāng)前頁數(shù)
- int
- //偏移動畫的時間
- float
- //顯示區(qū)域
- // CCRect m_view;
- //顯示區(qū)域,區(qū)域外的將被剪切
- //接收事件的區(qū)域
- //點(diǎn)擊后的回調(diào)函數(shù)
- #endif
- //
- // MScrollView.cpp
- // Test ScrollView
- //
- // Created by Za aa on 13-4-25.
- //
- //
- #include "MScrollView.h"
- //清空數(shù)組
- float
- new
- if
- //創(chuàng)建array,用于保存所有sprite
- //-----------------------------------------------
- //將省略的sprite添加進(jìn)m_spriteArray 和 mscrollview中
- //----------------------------------------------
- //定義一個params變量,實(shí)際是一個指針,用于定位可變行參變量
- va_list
- //執(zhí)行本宏后,params指向第一個可變信參,p_w_picpathSprite為最后一個確定行參
- //定義一個ccsprite 接收參數(shù)
- whiletrue
- if
- //添加進(jìn)數(shù)組和層-----
- //去下一個值
- else
- break
- //清空
- //排列ccprite
- ////////////添加完成////////
- return
- else
- delete
- return
- bool
- //////////////////////////////
- // 1. super init first
- // if ( !CCLayerColor::init() )
- if
- returnfalse
- //開啟觸屏響應(yīng)
- thistrue
- //添加顯示容器
- this
- //修改響應(yīng)區(qū)域,默認(rèn)是全屏
- //修改顯示區(qū)域,默認(rèn)為全屏
- this
- //修改剪切區(qū)域,默認(rèn)為全屏
- //默認(rèn)回調(diào)函數(shù)為空
- returntrue
- void
- if
- return
- if
- this
- this
- //默認(rèn)情況下,剪裁是禁用的
- //啟用剪裁測試
- floatthis//當(dāng)前l(fā)ayer縮放的倍數(shù)
- //獲取縮放倍率
- thisthis
- //默認(rèn)不設(shè)置Scissor的大小是整個視圖的大小
- //子節(jié)點(diǎn)處理
- if
- int
- for
- if
- else
- break
- this
- for
- else
- this
- //禁用剪裁測試
- if
- this
- //
- voidfloatfloat
- //TODO: 載顯示容器中排列精靈
- boolfloat
- //用于判讀是否有元素
- ifreturnfalse
- ///////////修改各個元素的位置
- //初始化當(dāng)前頁
- //初始化總頁數(shù)
- float
- float
- //獲取一個中心點(diǎn)
- this
- this
- float
- forint
- //TODO: 滾動修正
- void
- int
- //判斷移動的方向
- float
- if
- // 向左移動
- "zuo "
- else
- //向→移動
- "you"
- if
- "_page is : %d"
- " page is : %d"
- " curpage is : %d"
- //TODO: 拖動精靈,跟隨手指移動改變位置
- voidfloat
- thisthis
- //TODO: 滾動到某一頁的動畫
- voidfloat
- ifreturn
- //獲得當(dāng)前頁的精靈
- this
- //多移動一小段距離讓sprite載正中間
- float
- //獲取要到達(dá)的點(diǎn)
- this
- //計(jì)算移動到點(diǎn)的時間
- float
- float
- //滾動到指定點(diǎn)
- //頁面滾動動畫,moveto 動畫
- voidfloat
- //如果是拖動就停止這個動作
- if
- this
- return
- ///////////////
- //創(chuàng)建移動動畫
- //////////////
- //添加一個回調(diào)函數(shù)
- this
- //運(yùn)行moveto動畫
- //開啟拖動判讀
- this
- //updata,用于如果拖動就停止moveto 動作
- voidfloat
- if
- this
- return
- // // 添加一個回調(diào)函數(shù),用于停止動畫
- void
- // this->unschedule(schedule_selector(MoveToAnimation));
- this
- //消息注冊
- void
- thisfalse
- bool
- ifthisreturnfalse
- //記錄按下的點(diǎn)
- ifreturnfalse
- true
- "CCtouchBegan"
- //
- returntrue
- void
- "ccTouchMoved"
- ifthisreturn
- if
- false
- return
- //如果不是按下后移動
- if
- false
- else
- // CCLog("ccTouchMoved,x is %f::y is %f",x,y);
- void
- ifthisreturn
- iffalsereturn
- //判定是點(diǎn)擊還是滑動,如果是點(diǎn)擊執(zhí)行點(diǎn)擊函數(shù),如果是滑動執(zhí)行調(diào)整動畫
- float
- if
- //觸發(fā)點(diǎn)擊事件
- "touchclick"
- else
- // 滑動糾正
- //觸發(fā)滑動動畫
- void
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
文章名稱:cocos2d-x自己寫的一個scrollview有待完善-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://www.chinadenli.net/article14/dgeede.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站營銷、域名注冊、搜索引擎優(yōu)化、網(wǎng)站制作、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容