Quick-cocos2d-x3.3 Study (十一)--------- 讓物體從螢幕的外邊移動到螢幕中指定位置

來源:互聯網
上載者:User

標籤:

讓物體從螢幕的外邊移動到螢幕中指定位置、

代碼:

 1     -- 添加動畫, 2     -- 1. 建立冰菇的第一個圖片, 3     -- 2. 設定圖片位置, 4     -- 3. 將圖片添加到情境中, 5     self.player = display.newSprite( "#binggu_01.png" ) 6     self.player:align( display.CENTER, - self.player:getContentSize().width, display.cy ) 7     self.player:addTo(self) 8  9     -- 建立一個包含flying1.png到flying4.png的4個映像幀對象的數組10     local frames = display.newFrames( "binggu_0%d.png", 1, 7 )11 12     -- 以包含映像幀的數組建立一個動畫 Animation 對象13     local animation = display.newAnimation( frames, 0.3 / 4 )14 15     -- 在顯示對象上迴圈播放動畫,並返回 Action 動畫動作對象16     transition.playAnimationForever( self.player, animation )17 18     -- 建立動作,順序執行的動作19     -- 1. 移動到螢幕的中間位置20     -- 2. 列印移動到的位置座標21     local action = transition.sequence( 22         {23             cc.MoveTo:create( 5, cc.p( display.cx, display.cy ) ),24             cc.CallFunc:create( 25                 function ()26                     print("----  player:getPosition()  ----", self.player:getPosition() )27                 end )28         }29     )30     -- 讓player執行這個動作31     self.player:runAction(action)

 

在這個函數中,

我們先從動畫緩衝中取得了我們需要的動畫,

然後讓 self.player 主角不停的播放這個動畫;

接著又建立了一個動作(action)讓 self.player 執行。

 

transition.sequence() 方法能建立一個 Sequence 動作序列對象,

Sequence 類型的對象能使一個 Node 順序執行一批動作,

這裡建立了一個先執行 MoveTo 動作,

等 MoveTo 動作執行完後再執行 CallFunc 動作的對象。

通俗一點說它的作用就是,先移動到螢幕的(display.cx, display.cy)點,在調用 function()中的print()方法。

 

MoveTo 動作應該不難理解,因為第四章我們也講過它的兄弟 MoveBy。

MoveBy 動作能使節點從當前座標點勻速直線運動到相對位移了一定向量的位置上。

而 MoveTo 則能使節點從當前座標點勻速直線運動到指定的位置座標上。

它們的移動位置一個是相對的,一個是絕對的,這也是Cocos 引擎中所有以 To,By 為尾碼的動作的主要區別。

 

CallFunc 動作是個函數回調動作,它用來在動作中進行方法的調用,

個人覺得它是非常有必要存在的一個動作。

因為很多時候,當某些動作完成後,需要執行一些資料或邏輯上的處理

(比如,一個敵人播放完死亡動畫後需要把它移除並清理記憶體),

這時使用函數回調動作 CallFunc 就是再好不過的。

 

結果:

 

Quick-cocos2d-x3.3 Study (十一)--------- 讓物體從螢幕的外邊移動到螢幕中指定位置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.