<!--作為一個初學者,難免有遺漏和不妥之處,還請不吝賜教,不勝感激。錯則改之,無則加勉。
接觸ccc的第一天。我首先去看了下Cocos Creator 用戶手冊(http://docs.cocos.com/creator/manual/zh/),然后跟着做了一個摘星星的小游戲。
第一天就是簡單的復制粘貼,簡單了解了一下操作界面和運行原理。第二天我找了下前輩們的教程,找了一個基礎加實戰的教程(http://forum.cocos.com/t/topic/40659),這里對作者表示感謝。
作為小白,不希望在選擇教程這些環節浪費時間,等以后深入了解之后,再對這些教程進行推薦比較靠譜。下面主要記錄學習過程,與同是初學者的共勉,對各位前輩表示膜拜。-->
第一天,大概內容就是看跳動的小球制作教程,然后分析代碼。<!--像一些初學者的心路歷程會以標注為注釋的形式記錄。-->
首先貼出代碼:<!--是分析代碼過程之后的代碼,里面會有一些代碼是用來測試方法參數,或者一些瞎玩的,但是都會注釋,留下關鍵代碼,表示新手了解關鍵字的過程,如果我認為有用的測試過程會在解釋關鍵字的過程中提到-->
1 cc.Class({ 2 extends: cc.Component, 3 4 properties: { 5 jumpDuration: 1, 6 jumpHight: 300 7 }, 8 9 balljumpAction: function() { 10 //var jumpRight = cc.moveBy(this.jumpDuration,cc.p(this.jumpHight,0)).easing(cc.easeQuadraticActionIn()); 11 //var jumpLeft = cc.moveBy(this.jumpDuration,cc.p(-this.jumpHight,0)).easing(cc.easeQuadraticActionOut()); 12 //定義小球跳起來的動作。 13 //var jumpUp = cc.moveBy(this.jumpDuration,cc.p(0,this.jumpHight)).easing(cc.easeQuadraticActionOut()); 14 //var jumpUp = cc.moveBy(this.jumpDuration,0,this.jumpHight).easing(cc.easeQuadraticActionOut()); 15 var jumpUp = cc.moveBy(this.jumpDuration,cc.p(0,this.jumpHight)).easing(cc.easeQuadraticActionOut()); 16 //var jumpUp = cc.moveTo(this.jumpDuration,cc.v2(0,this.jumpHight)).easing(cc.easeQuadraticActionOut()); 17 //定義小球落下去的動作。 18 var jumpDown = cc.moveBy(this.jumpDuration,cc.p(0,-this.jumpHight)).easing(cc.easeQuadraticActionIn()); 19 //var jumpDown = jumpUp.reverse().easing(cc.easeQuadraticActionIn()); 20 //var jumpDown = cc.moveTo(this.jumpDuration,cc.p(0,-this.jumpHight)).easing(cc.easeQuadraticActionIn()); 21 //return cc.moveBy(this.jumpDuration,cc.p(0,this.jumpHight)).easing(cc.easeQuadraticActionIn()); 22 //return cc.sequence(jumpUp,jumpDown); 23 return cc.repeatForever(cc.sequence(jumpUp,jumpDown)); 24 //返回小球重復跳起來落下去的動作。 25 // return cc.repeat(cc.sequence(jumpUp,jumpDown),2); 26 }, 27 28 onLoad () { 29 //this.node.runAction(cc.sequence(cc.moveBy(this.jumpDuration,cc.p(0,this.jumpHight)).easing(cc.easeQuadraticActionOut()),cc.moveBy(this.jumpDuration,cc.p(0,-this.jumpHight)).easing(cc.easeQuadraticActionIn())).repeatForever()); 30 this.ballAction = this.balljumpAction(); 31 //this.node.runAction(this.balljumpAction()); 32 //在加載的執行動作。 33 this.node.runAction(this.ballAction); 34 //this.schedule(function(){this.node.stopAllActions();this.node.runAction(this.ballAction);},1); 35 }, 36 37 start () { 38 39 }, 40 41 });
下面我會大概講下我對代碼的理解,主要是關鍵字的用法。<!-- 雖然 官方api(http://docs.cocos.com/creator/api)里面都有,但是畢竟把自己的理解寫下來,不說麻煩別人指出對不對,就是以后自己回頭看自己當初的理解,有個記錄作為學習思考反省的依據也是蠻有必要的。-->
首先整體看代碼:一個小球對象,它有兩個屬性,jumpDuraction是小球跳動的時間,jumpHight是小球跳動的高度。然后定義一個balljumpAction的方法,返回小球跳動的行動。最后在onload代碼塊(Sence加載的時候自動執行)里面調用執行小球balljumpAction方法。在ccc界面操作就是把畫布中的ball圖片節點添加上以上代碼的組件,在屬性檢測器中可以對小球的兩個屬性進行調整。<!--可能對一些對象解釋說法不准確,畢竟新手,學習過程必須經歷的,等什么時候不在自稱小白,我再承受語言必須准確的責任-->
依此列出閱讀代碼中遇到的關鍵字,參考官方api后,進行理解。
