常用的API(對開發(fā)之旅書上的一些具體步驟的總結(jié))_第1頁
常用的API(對開發(fā)之旅書上的一些具體步驟的總結(jié))_第2頁
常用的API(對開發(fā)之旅書上的一些具體步驟的總結(jié))_第3頁
常用的API(對開發(fā)之旅書上的一些具體步驟的總結(jié))_第4頁
常用的API(對開發(fā)之旅書上的一些具體步驟的總結(jié))_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、常用API總結(jié):(參考開發(fā)之旅書上用的一些API,詳細參考書上代碼)1.格式化輸出方法:對格式要求高,可能因為參數(shù)格式問題出錯:cc.log /如cc.log("%d js",5);輸出為5 js推薦自己寫一個類似Java中System.out.print()方法,如書中給的:var trace = function() cc.log(Atotype.join.call(arguments,","); /有了這個方法,之后就可以實現(xiàn)如trace("hello"+"world");的輸出this/va

2、rname.addChild:var layer = new helloworldlayer();this.addChild(layer);或scene.addChild(layer);/可添加一個圖層到場景中并顯示cc.director.getWinsize();var size =cc.director.getWinsize();size即存有游戲的顯示屏幕(世界坐標系)的寬和高new cc.Sprite(res);var bg =new cc.Sprite(res.helloworld_png);/創(chuàng)建一個精靈,精靈以圖helloworld呈現(xiàn)size.widthsize.height取

3、寬的大小,高的大小cc.director.runScene(); /括號內(nèi)加場景,即可執(zhí)行場景里的內(nèi)容cc.director.runScene(new cc.TransitionSlideInT(2,new SecondScene();/兩秒后滑動切換場景到ScondScene類似的切換場景效果:TransitionMoveInB:從下往上移進TransitionRotoZoom:舊旋轉(zhuǎn)變小消失,新旋轉(zhuǎn)變大出現(xiàn)TransitionJumpZoom:舊縮小再跳躍離開,新跳躍進入TransitionShrinkGrow:舊變小,新逐漸變大TransitionFlipX:舊橫向旋轉(zhuǎn),新出現(xiàn)Trans

4、itionFlipAngular:舊斜向旋轉(zhuǎn)TransitionFade:舊逐漸消失,新逐漸顯示TransitionTurnOffTiles:新場景直接出現(xiàn)在背后,舊場景馬賽克方式逐漸消失TransitionSplitCols:畫面分三列分別滑進滑出pushScene不銷毀場景,把上個場景存起來popScene當前場景銷毀,回到上一個場景前綴cc.director.后綴:getWinsize窗口的設(shè)計尺寸 getVisiblesize窗口實際尺寸 getScheduler獲取全局定時器 pause/resume暫停/恢復(fù)場景節(jié)點Node(如圖層layer,精靈sprite均為節(jié)點)下實現(xiàn)每一幀

5、做點小動作:scheduleUpdate和update如在自己構(gòu)造的圖層對象layer中的ctor(自編構(gòu)造函數(shù))加入this.scheduleUpdate();在ctor函數(shù)下再加個update函數(shù)(官方原生函數(shù)),函數(shù)內(nèi)容自編,scheduleUpdate通知當前節(jié)點在每幀重繪前調(diào)用update函數(shù)1.動作:cc.moveBy(1,cc.p(size.width,100);直線移動一秒,且一秒后,寬移動一個屏寬的像素,高向上移動100像素。cc.moveTo(1,cc.p(size.width,100);直線移動一秒,且一秒后,移動到坐標為(size.width,100)cc.scaleT

6、o(1,2,2);一秒后放大對象寬為原來兩倍,高為原來兩倍cc.fadeOut(2); /兩秒淡出cc.fadeIn(2); /兩秒淡入cc.blink(2,10); /兩秒閃爍10次cc.color(100,0,0); /設(shè)置顏色紅色為100,綠色為0,藍色為0cc.tintTo(2,100,0,0); /兩秒內(nèi)顏色變化為(100,0,0)cc.sequence(action1,action2); /順序執(zhí)行兩個動作,一個動作結(jié)束就開始執(zhí)行另一個動作, 串行執(zhí)行,這整個語句可以賦值給另一個動作cc.repeat(action,5);/重復(fù)執(zhí)行action5次cc.repeatForever(

7、action);/無限重復(fù)執(zhí)行actioncc.spawn(action1,action2);/同時執(zhí)行多個動作,并行執(zhí)行action.reverse();/ 代表action動作的反動作示例:var ball=new cc.Sprite(res.helloworld.png);var action=cc.scaleTo(1,2,2);一秒后放大對象寬為原來兩倍,高為原來兩倍ball.runAction(action);球執(zhí)行動作action緩動方式action.easing(cc.easeIn(2);/以二次方加速移動action.easing(cc.BounceIn(2);/彈性加速act

8、ion.easing(cc.easeQuadraticAcitonIn/Out/InOut();二次曲線的速度變化形式移動action.easing(cc.easeCubicAcitonIn/Out/InOut();三次曲線的速度變化形式移動action.easing(cc.easeBackAcitonIn/Out/InOut();出去再返回彈性和反彈action.easing(cc.easeElasticIn/Out/InOut();action.easing(cc.easeBounceIn/Out/InOut();控制動作:node.stopAction(action);/停止node的a

9、ction動作node.stopActionByTag(tag);/通過標簽來判斷node應(yīng)停止的某些動作node.stopAllAction();/停止node的所有動作cc.director.pause();/游戲全暫停cc.director.resume();/游戲全恢復(fù)動作ball.pause();/球停止動作ball.resume();/球恢復(fù)動作監(jiān)聽動作開始和結(jié)束cc.callFunc(callback,ball,"message");在球動作執(zhí)行完后執(zhí)行callback函數(shù),meassage可傳入callback函數(shù)中,從而監(jiān)聽動作背景音樂:cc.audioE

10、ngine.playMusic("res/my.mp3",true);播放背景音樂my.mp3,重復(fù)播放cc.audioEngine.stopMusic();停止背景音樂播放音效:var effect=cc.audioEngine.stopEffect("res/my.mp3",false);cc.audioEngine.stopEffect(effect);cc. audioEngine.stopALLEffects();開啟音效my.mp3不重復(fù)播放,注:音效可同時播多個音量:cc.audioEngine.setEffectsVolume(0);設(shè)置

11、背景音樂音量cc.audioEngine.setMusicVolume(0);設(shè)置音效音量恢復(fù)音量的方式:cc.audioEngine.setEffectsVolume(1);恢復(fù)背景音樂音量cc.audioEngine.setMusicVolume(1);恢復(fù)音效音量一、即時動作1、放置12var placeAction = cc.place(x, y);node.runAction(placeAction);上述代碼將node節(jié)點放置到指定位置的(x, y)位置上。2、翻轉(zhuǎn)1234var flipXAction = cc

12、.flipX(true);var flipYAction = cc.flipY(true);node.runAction(cc.sequence(cc.delayTime(0.5), flipXAction, cc.delayTime(0.5), flipYAction);上述代碼實現(xiàn)了節(jié)點的上下、左右翻轉(zhuǎn)。動作序列中的延時函數(shù)是為了方便我們觀看效果。3、顯示和隱藏1234var showAction = cc.show();var hideAction = cc.hide(

13、);node.runAction(cc.sequence(cc.delayTime(0.5), hideAction, cc.delayTime(0.5), showAction);上述代碼實現(xiàn)了指定節(jié)點的隱藏和顯示。4、刪除自己12var removeSelfAction = cc.removeSelf();node.runAction(removeSelfAction);上述代碼將節(jié)點從場景中刪除。5、函數(shù)動作5.1 無參函數(shù)123456var callAction = cc.callFunc(cal

14、lback, this);node.runAction(callAction);/下面定義的是回調(diào)函數(shù)callback : function()cc.log("Hello Callback");上述代碼運行時會在控制臺打印一條"Hello Callback"語句。5.2 有參函數(shù)123456789101112131415var sayHello = function()cc.log("Hello world,I'm Jeff");var&

15、#160;data = name : "凌建風(fēng)",age  : 22,doSth: sayHello;var callAction = cc.callFunc(callback, this, data);node.runAction(callAction);/下面是回調(diào)函數(shù)callback : function(sender, data)cc.log("Hello callback"&#

16、160;+ data);node.runAction(cc.callFunc(data.doSth);上述代碼打印一條"Hello callback"+data的語句以及一條"Hello world,I'm Jeff"的語句?;卣{(diào)函數(shù)中的sender就是callFunc函數(shù)中的this,表示其調(diào)用的對象。5.3 匿名函數(shù)1234var callAction = cc.callFunc(function()cc.log("Hello callback"););node.runAc

17、tion(callAction);上述代碼和無參函數(shù)效果類似,只是將函數(shù)體內(nèi)置在了參數(shù)列表中,稱為匿名函數(shù)。二、持續(xù)動作1、屬性變化動作屬性變化動作分為To和By兩種。顧名思義,To表示直接將屬性變化為指定的值,指定值為"終點",而By表示屬性的變動幅度為指定的值,指定值為"變化量"。1)move12var actionMoveTo = cc.moveTo(time, cc.p(x, y);var actionMoveBy = cc.moveBy(time, ccp

18、(x, y);上述代碼,第一行的意思是,在time秒內(nèi),將節(jié)點移動到(x, y)位置上;第二行的意思是,在time秒內(nèi),將節(jié)點移動到坐標再加上(x, y)的位置上。我們省略了最終runAction的代碼,在下面也是如此。2)jump12var actionJumpTo = cc.jumpTo(time, cc.p(x, y), height, count);var actionJumpBy = cc.jumpBy(time, cc.p(x, y), hei

19、ght, count);上述代碼,第一行的意思是,在time秒內(nèi),節(jié)點要跳躍count次,每次跳躍的高度為height,停止跳躍之后的位置為(x, y)。第二行中,參數(shù)的意義是一樣的,不同的是,停止跳躍時的坐標為原坐標加上(x, y)的值。3)bezier123456var controlPointsTo = cc.p(x1, y1),/控制點1cc.p(x2, y2),/控制點2cc.p(x3, y3)/終點;var bezierTo = cc.bezierTo(time, cont

20、rolPointsTo);bezierTo和bezierBy的作用是操作節(jié)點作貝塞爾曲線運動,所謂貝塞爾曲線,如下圖所示:簡單來說,就是控制節(jié)點從起始坐標經(jīng)過曲線運動到達終點坐標,其中控制點1和2用于控制曲線軌跡的形成。而bezierBy與上述的移動、跳躍的By形式并無區(qū)別,在此省略,下面的講解中也一樣省略。4)scale12var actionScaleTo = cc.scaleTo(time, scale);var actionScaleTo1 = cc.scaleTo(time, scaleX, s

21、caleY);上述代碼表示將節(jié)點在time秒內(nèi)縮放到原節(jié)點scale倍大小。scale大于1時圖片放大,scale小于1時縮小。若有第三個參數(shù),則第二個參數(shù)為X方向縮放倍數(shù),第三個參數(shù)為Y軸方向縮放倍數(shù)。而對于scaleBy來說,scale表示的是基于當前節(jié)點大小的縮放倍數(shù)。另外,scaleBy是可逆的,而scaleTo是不可逆的。(使用reverse()逆轉(zhuǎn))。5)rotate12var actionRotateTo = cc.rotateTo(time, deltaAngle);var actionRotateTo = 

22、cc.rotateTo(time, deltaAngleX, deltaAngleY);上述代碼實現(xiàn)的是節(jié)點的旋轉(zhuǎn)。若無第三個參數(shù),則節(jié)點在time秒內(nèi)順時針旋轉(zhuǎn)deltaAngle度;若有第三個參數(shù),則節(jié)點在x方向上旋轉(zhuǎn)deltaAngleX度,在y方向上旋轉(zhuǎn)deltaAngleY度。而rotateBy的旋轉(zhuǎn)則以節(jié)點當前角度為準進行運動。2、視覺特效動作1)淡入淡出123var actionFadeIn = cc.fadeIn(time);var actionFadeOut = cc.fadeOut(time);

23、var actionFadeTo = cc.fadeTo(time, opacity);上述代碼,第一行表示淡入,即在time秒內(nèi)從當前透明度變?yōu)橥该鞫?55;第二行表示淡出,即在time秒內(nèi)從當前透明度變?yōu)橥该鞫?;第三行則表示在time秒內(nèi)從當前透明度變?yōu)橹付ǖ耐该鞫萶pacity。以上效果均可以使用reverse()逆轉(zhuǎn)。2)顏色漸變12var actionTintTo = cc.tintTo(time, r, g, b);var actionTintBy = 

24、;cc.tintBy(time, r, g, b);上述代碼使用3個參數(shù)控制節(jié)點的RGB屬性,從而達到使節(jié)點顏色漸變的效果。同樣是在time秒內(nèi)完成。3)閃爍1var actionBlink = cc.blink(time, count);上述代碼表示,節(jié)點在time秒內(nèi),要閃爍count次。4)攝像機1var orbit=cc.orbitCamera(time,radius,radiusD,zAngle,zAngleD,xAngle,xAngleD);上述代碼創(chuàng)建一個球面坐標軌跡進行旋轉(zhuǎn)操作。time表示旋轉(zhuǎn)軌跡

25、的時間;radius表示起始半徑,radiusD表示半徑差;zAngle表示起始z角,zAngleD表示旋轉(zhuǎn)z角的差;xAngle表示起始x角,xAngleD表示旋轉(zhuǎn)x角的差。5)跟隨在另一個節(jié)點運行了一個action后,則可以使用follow使指定的對象跟隨另一個節(jié)點運動。1object.runAction(cc.follow(node, cc.rect(x, y, width, height);上述代碼表示object對象(一般為層),跟隨node節(jié)點運動。第二個rect參數(shù)如果不加上,則默認為(0, 0, 0, 0),表示無邊界的動作;若有非零的r

26、ect,則表示帶邊界的動作。若要詳細理解該方法,建議在視頻附帶的源碼中額外添加可滾動的背景,這樣可以方便理解,不會造成誤解。3、復(fù)合動作1)延時動作1var actionDelayTime = cc.delayTime(time); /time為延時的秒數(shù)延時動作多用于在動作序列sequence中,以方便觀察其他動作。2)重復(fù)動作1234var actionRepeat = action.repeat(count);var actionRepeat1 = cc.repeat(action,

27、60;count);var actionRepeatForever = action.repeatForever();var actionRepeatForever1 = cc.repeatForever(action);上述代碼包含了重復(fù)固定次數(shù)以及無限重復(fù)的兩種寫法。其中action是已經(jīng)定義好的動作,count表示該動作需要重復(fù)的次數(shù)。3)序列動作1var sequence = cc.sequence(action1, action2, action3);序列動作在之前大家也已經(jīng)

28、見過很多了,其效果是讓多個指定的動作按照前后順序逐一執(zhí)行。其構(gòu)造函數(shù)的參數(shù)個數(shù)沒有限制。4)并發(fā)動作1var actionSpawn = cc.spawn(action1, action2);并發(fā)動作與序列動作相反,不是讓動作按順序執(zhí)行,而是使它們在同一時刻同時進行。5)逆轉(zhuǎn)動作1var actionRev = action.reverse();逆轉(zhuǎn)動作即將指定action的動作倒過來執(zhí)行一遍。需要注意的是有些動作是無法逆轉(zhuǎn)的,而且針對web平臺和native平臺也有所區(qū)別,這就需要大家在實際操作中積累經(jīng)驗了。4、變速動作1

29、)Speed1var speedAction = cc.speed(action, times);speed方法的作用是讓指定的動作action以指定的times倍速度執(zhí)行。2)ActionEase動作緩沖基本格式如下:1var actionEase = action.easing(ActionEase);其中action是要緩沖的動作,ActionEase是選擇的緩沖模式。所能使用的緩沖模式中,比較基本的有:123456cc.easeBounceIn();/以彈性緩動效果開始cc.easeBounceOut();/以彈性緩

30、動效果結(jié)束cc.easeBounceInOut();/以彈性緩動效果開始和結(jié)束cc.easeBackIn();/加速度向右,反方向緩慢移動cc.easeBackOut();/快速移動到結(jié)束,然后緩慢返回到結(jié)束cc.easeBackInOut();/以EaseBackIn開始,以EaseBackOut結(jié)束一、節(jié)點的屬性1、圖形屬性1.1 旋轉(zhuǎn)1) 旋轉(zhuǎn)的角度:Number rotation 2) 向x軸方向傾斜的角度:Number rotationX3) 向y軸方向傾斜的角度:Number rotationY圖形的旋轉(zhuǎn)均以順時針方向進行。默認旋轉(zhuǎn)角度為01.2 縮放1) 縮放大?。篘u

31、mber scale2) x軸方向縮放大小:Number scaleX3) y軸方向縮放大?。篘umber scaleY默認的縮放大小為1,大于1則節(jié)點放大,小于1則節(jié)點縮小。1.3 傾斜1) x軸傾斜角度:Number skewX2) y軸傾斜角度:Nubmer skewY傾斜與旋轉(zhuǎn)的效果有些類似,但是實際上是不一樣的。skewX表示X軸方向上的傾斜角度,該角度是Y軸與其左邊緣之間的夾角;skewY表示Y軸方向上的傾斜角度,該角度是X軸與其底邊緣之間的夾角。1.4 可見1) 是否可見:Bool visiblevisible為true,該節(jié)點可見;visible為false,該節(jié)點不可見。1.

32、5 透明度1) 透明度:Number opacity2) 是否級聯(lián)透明度:Bool cascadeOpacity透明度取值范圍為:0-255,0時透明,255時不透明;級聯(lián)透明度默認為false,表示是否將該節(jié)點的透明度傳遞給與其相關(guān)(有父子關(guān)系)的節(jié)點上。1.6 顏色1) 顏色:cc.Color color2) 級聯(lián)顏色:Bool cascadeColor3) 顏色值是否跟著透明度進行改變:Bool opacityModifyRGB此處級聯(lián)與透明度的級聯(lián)是一樣的,而opacityModifyRGB表示透明度是否作用與顏色。2、其他屬性2.1 父子關(guān)系1)  父親:cc.Node p

33、arent2)  孩子:Array children3)  孩子數(shù)量:Number childrenCount2.2 計時器1) 計時器:cc.Scheduler scheduler計時器控制節(jié)點定時完成指定的動作。2.3 運行狀態(tài)1) 是否正在運行:Bool running2.4 動作管理1) 動作管理器:cc.ActionManager actionManager動作管理器是控制節(jié)點動畫的管理器。2.5 渲染順序1) 節(jié)點渲染順序:Number arrivalOrder在zIndex的值相同的情況下,節(jié)點渲染順序的值越大,該節(jié)點越晚被渲染。2.控制鼠標事件cc.even

34、tManager.addListener(event:cc.EventListener.MOUSE, onMouseDown:function(event) , onMouseMove:function(event) , onMouseUp:function(event) ,node);監(jiān)聽函數(shù)接收兩對象,一個為監(jiān)聽信息對象,一個為監(jiān)聽的結(jié)點。'mouse' in cc.sys.capabilities;/做當前運行環(huán)境是否有鼠標事件的判斷監(jiān)聽對象中的event對象:event.getLocation獲取鼠標事件發(fā)生的全局坐標event.getLocationX/getLoca

35、tionY /x坐標或y坐標event.getCurrentTarget獲取當前處理鼠標事件的對象event.getButton 獲取鼠標點擊鍵值:左鍵還是右鍵event.getDelta:獲取移動的偏移值event.getDeltaX/getDeltaY觸摸事件單點觸摸cc.eventManager.addListener( event:cc.EventListener.TOUCH_ONE_BY_ONE, onTouchBegan:function(touch,event) , onTouchMoved:function(touch,event) , onTouchEnded:functio

36、n(touch,event) , onTouchCancelled:function(touch,event) ,node);監(jiān)聽觸摸開始,觸摸移動,觸摸結(jié)束,觸摸取消(突然來電等)多點觸摸:cc.eventManager.addListener( event:cc.EventListener.TOUCH_ALL_AT_ONCE, onTouchBegan:function(touches,event) , onTouchMoved:function(touches,event) , onTouchEnded:function(touches,event) , onTouchCancelled

37、:function(touches,event) ,this);鍵盤事件每個鍵對應(yīng)一個keyCode數(shù)字,如tab鍵對應(yīng)為9cc.eventManager.addListener( event:cc.EventListener.KEYBOARD, onKeyPressed:function(keyCode,event) , onKeyReleased:function(keyCode,event) ,node);重力感應(yīng)器事件:cc.inputManager.setAccelerometerInterval(interval)( event:cc. inputManager. setAccel

38、erometerEnabled(true), cc.eventManager.addListener( event:cc.EventListener.ACCELERATION, callback:function(accelerometerInfo,event) ,this);游戲進入后臺/恢復(fù)顯示事件cc.eventManager.addCustomListener(cc.game,EVENT_HIDE,function() );cc.eventManager.addCustomListener(cc.game,EVENT_SHOW,function() );3.定時器定時器schedule

39、Update(讓游戲運行過程中每幀都執(zhí)行update方法):var ScheduleUpdateLayer = cc.Layer.extend( ctor:function()this._super();this.scheduleUpdate();,update:function()/do something);JS原生定時器:setTimeOutSetItervalscheduleOnce定時器:node.scheduleOnce(callback,2);兩秒后執(zhí)行自己編寫的函數(shù)callback,只能依賴節(jié)點觸發(fā)schedule:node.schedule(callback,3,REPEAT

40、_FOREVER,2);每間隔3秒觸發(fā)一次callback函數(shù),重復(fù)無數(shù)次,且第一次觸發(fā)前的延遲時間為2秒 取消定時器:node.unscheduleUpdate(callback);取消定時器scheduleUpdate觸發(fā)的callback函數(shù)node.unschedule(callback); 取消定時器schedule觸發(fā)的callback函數(shù)恢復(fù)暫停定時器:node.pause暫停定時器node.resume恢復(fù)定時器全屏顯示function ChangeToFullScreen()/ /判斷是否為全屏,如果全屏,則退出全屏,否則以全屏顯示/ if(cc.screen.fullScr

41、een()/ /退出全屏/ cc.screen.exitFullScreen();/ else /全屏顯示 cc.screen.requestFullScreen();/ 游戲界面cc.LabelTTF的相關(guān)api1、  創(chuàng)建var text = new cc.LabelTTF(“這是一段文字” , 文字的配置, 大小 );EG:var text = new cc.LabelTTF(“哈哈,文字哦”, "Arial",24); / 創(chuàng)建了一段Arail,大小為24的字體 2、  改變文字內(nèi)容text.setString(“更改的內(nèi)容啊”);&#

42、160;3、  設(shè)置顏色label.setColor(cc.color(255, 0, 0, 255); / 將字體改為紅色 4、  設(shè)置文字大小label.setFontSize(100); /設(shè)置為100號字體 5、  文字對齊label.textAlign = cc.TEXT_ALIGNMENT_CENTER;/ 居中cc.TEXT_ALIGNMENT_LEFT; / 居左cc.TEXT_ALIGNMENT_RIGHT; / 居右 PS:單行的文字,是無法看出textAlign的效果的說。用”n”換

43、行試試 6、  文字顯示范圍label.setDimensions(width, height); / 文字顯示的范圍 7、  忽略anchor的設(shè)置label.ignoreAnchor = true; / 設(shè)置后,label的起始點在左下角 8、  文字定義:var text = new cc.LabelTTF(“文字”, def); def 是這樣定義:var def = new cc.FontDefinition(); / 聲明文字定義def.fontName = “宋體,微軟雅黑”; / 字體def.fontSize

44、 = 24; / 字號大小def.textAlign = cc.TEXT_ALIGNMENT_CENTER; / 文字對齊def.fillStyle = cc.color(“#ffffff”); / 字體(內(nèi)部)顏色 def.strokeEnabled = true; / 開啟文字描邊效果def.strokeStyle = cc.color(“#ffeeee”); / 描邊的顏色def.lineWidth = 3; / 字體的寬度 defadowEnabled = true; / 開啟陰影效果def.shadowOffsetX = 12; / 陰影X軸效果def.shado

45、wOffsetY = 12; / 陰影Y軸效果手工制作API(即用代碼制作,不過一般采用cocos studio制作游戲界面)一、按鈕1.MenuItemSpritenew cc.MenuItemSprite(spriteNormal,spriteSelected,spriteDisable,clickHandler,target);五個參數(shù)依次為正常態(tài)效果,按下時效果,禁用時效果,點擊的回調(diào)函數(shù),回調(diào)函數(shù)作用的對象。也可缺少禁用時的效果和回調(diào)函數(shù)的目標對象實例參考代碼:var MenuItemSpriteLayer = cc.Layer.extend( ctor: function () t

46、his._super(); var spriteNormal = new cc.Sprite("res/startgame.png"); var spriteSelected = new cc.Sprite("res/startgame2.png"); var spriteDisable = new cc.Sprite("res/startgame3.png");/ var menuSprite = new cc.MenuItemSprite(spriteNormal, spriteSelected, spriteDisable, t

47、his.startGame.bind(this); var menuSprite = new cc.MenuItemSprite(spriteNormal, spriteSelected, spriteDisable, this.startGame); var menu = new cc.Menu(menuSprite); this.addChild(menu); menuSprite.setEnabled(false); , startGame: function () trace("this is MenuItemSpriteLayer?", this instance

48、of MenuItemSpriteLayer); );2.MenuItemImage:省去幾個新建精靈的操作,使加載圖片更便利用法:new cc.MenuItemImage(ImageNormalUrl, ImageSelectedUrl,ImageDisableUrl,clickHandler,target);實例參考代碼:var MenuItemImageLayer = cc.Layer.extend( ctor: function () this._super(); var menuImage = new cc.MenuItemImage("res/startgame.png&

49、quot;, "res/startgame2.png", "res/startgame3.png", this.startGame, this); var menu = new cc.Menu(menuImage); this.addChild(menu); , startGame: function () trace("menuImage clicked"); );3.MenuItemFont:制作文字按鈕new cc.MenuItemImage(text,clickHander,target);參數(shù)依次為文本內(nèi)容,點擊的回調(diào)函數(shù),

50、回調(diào)函數(shù)作用的對象。實例參考代碼:var MenuItemFontLayer = cc.Layer.extend( ctor: function () this._super(); var menuFont = new cc.MenuItemFont("START GAME", this.startGame, this); menuFont.fontSize = 32; menuFont.fontName = "Arial" var menu = new cc.Menu(menuFont); this.addChild(menu); , startGam

51、e: function () trace("start game button clicked"); );4.MenuItemLabel:可使用更酷炫的字體new cc.MenuItemLabel(ttf/bmfont,clickHander,target);實例參考代碼:var MenuItemLabelLayer = cc.Layer.extend( ctor: function () this._super();/ var label = new cc.LabelTTF("START GAME", "Arial", 32);/

52、var item = new cc.MenuItemLabel(label, this.startGame, this); var label = new cc.LabelBMFont("START GAME", "res/font.fnt"); var item = new cc.MenuItemLabel(label, this.startGame, this); var menu = new cc.Menu(item); this.addChild(menu); , startGame: function () trace("start

53、game button clicked"); );制作開關(guān)按鈕:實例參考代碼:var MenuItemToggleLayer = cc.Layer.extend( ctor: function () this._super(); cc.MenuItemFont.setFontName("Arial"); cc.MenuItemFont.setFontSize(32); var on = new cc.MenuItemFont("ON"); var off = new cc.MenuItemFont("OFF"); var i

54、tem = new cc.MenuItemToggle(off, on, this.toggleMusic, this); var menu = new cc.Menu(item); this.addChild(menu); , toggleMusic: function () if(this.musicOff) trace("music on"); this.musicOff = false; else trace("music off"); this.musicOff = true; );菜單:var MenuLayer = cc.Layer.ext

55、end( ctor: function () this._super(); cc.MenuItemFont.setFontName("Arial"); cc.MenuItemFont.setFontSize(24); var one = new cc.MenuItemFont("one", this.clickHandler); var two = new cc.MenuItemFont("two", this.clickHandler); var three = new cc.MenuItemFont("three&quo

56、t;, this.clickHandler); var four = new cc.MenuItemFont("four", this.clickHandler); var five = new cc.MenuItemFont("five", this.clickHandler); var six = new cc.MenuItemFont("six", this.clickHandler); var menu = new cc.Menu(one, two, three, four, five, six); this.addChild(menu);/ menu.alignIte

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論