1. 程式人生 > >【動作】Cocos2d-x 動作的分類與使用總結

【動作】Cocos2d-x 動作的分類與使用總結

本文蒐集了幾篇關於動作的文章,作為收藏。

//////////////////這一段轉自Cocos2d-x官方中文文件 v3.x////////////////////////////

動作類(Action)是所有動作的基類,它建立的一個物件代表一個動作。動作作用於Node,因此每個動作都需要由Node物件執行。動作類(Action)作為基類,實際上是一個介面,動作類的大多數實現類都派生於有限時間動作類(FiniteTimeAction)。

在實際開發中我們通常用到兩類動作-即時動作和持續動作,它們均繼承於有限時間動作類。

即時動作

即時動作只能夠立刻完成的動作,這類動作是在下一幀立刻完成的動作,如設定位置、設定縮放等。把它們包裝成動作後,可以與其他動作類組合為複雜動作。

下面介紹一些常用即時動作

Place

該動作用於將節點放置到某個指定位置,其作用與修改節點的position屬性相同。例如,將節點放到螢幕座標(10, 10)處的程式碼如下:

<span class="pln" style="color: rgb(255, 255, 255);">    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> placeAction </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Place</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="typ" style="color: rgb(137, 189, 255);">Point</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="lit" style="color: rgb(51, 135, 204);">10</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="lit" style="color: rgb(51, 135, 204);">10</span><span class="pun" style="color: rgb(255, 255, 255);">));</span>

FlipX和FlipY

這兩個動作分別用於將精力沿X軸和Y軸反向顯示,其作用與設定精靈的FlipX和FlipY屬性相同,將其包裝成動作是為了便於與其他動作進行組合。

下面程式碼將一個精靈移動到一端後反向顯示再進行移回原點的動作:

<span class="pln" style="color: rgb(255, 255, 255);">    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> flipxAction </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">FlipX</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">true</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> moveTo </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">MoveTo</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="lit" style="color: rgb(51, 135, 204);">0.4f</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Point</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="lit" style="color: rgb(51, 135, 204);">0</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="lit" style="color: rgb(51, 135, 204);">0</span><span class="pun" style="color: rgb(255, 255, 255);">));</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> action </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Sequence</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="pln" style="color: rgb(255, 255, 255);">moveTo</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> flipxAction</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> moveTo</span><span class="pun" style="color: rgb(255, 255, 255);">-></span><span class="pln" style="color: rgb(255, 255, 255);">reverse</span><span class="pun" style="color: rgb(255, 255, 255);">(),</span><span class="pln" style="color: rgb(255, 255, 255);"> NULL</span><span class="pun" style="color: rgb(255, 255, 255);">);</span>

其中Sequence是動作序列,後面將詳細介紹,reverse的作用是獲得原動作的逆動作。

Show和Hide

這兩個動作分別用於顯示和隱藏節點,其作用與設定節點的visible屬性作用一樣。例如,為了使精靈完成移動後隱藏起來,可以用如下程式碼:

<span class="pln" style="color: rgb(255, 255, 255);">    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> hideAction </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Hide</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">();</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> moveTo </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">MoveTo</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="lit" style="color: rgb(51, 135, 204);">0.4f</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Point</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="lit" style="color: rgb(51, 135, 204);">0</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="lit" style="color: rgb(51, 135, 204);">0</span><span class="pun" style="color: rgb(255, 255, 255);">));</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> action </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Sequence</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="pln" style="color: rgb(255, 255, 255);">moveTo</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> hideAction</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> NULL</span><span class="pun" style="color: rgb(255, 255, 255);">);</span>

CallFunc

CallFunc系列動作包括CallFunc、CallFuncN兩個動作,用來在動作中進行方法呼叫。在遊戲中為了節約記憶體資源,我們可以在動作完成後呼叫相應函式清理記憶體,如下程式碼:

<span class="pln" style="color: rgb(255, 255, 255);">    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> actionMoveDone </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">CallFuncN</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">([&](</span><span class="typ" style="color: rgb(137, 189, 255);">Ref</span><span class="pun" style="color: rgb(255, 255, 255);">*</span><span class="pln" style="color: rgb(255, 255, 255);"> sender</span><span class="pun" style="color: rgb(255, 255, 255);">){</span><span class="pln" style="color: rgb(255, 255, 255);">
        log</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="str" style="color: rgb(101, 176, 66);">"Clear memory"</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="pun" style="color: rgb(255, 255, 255);">});</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> moveTo </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">MoveTo</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="lit" style="color: rgb(51, 135, 204);">0.4f</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Point</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="lit" style="color: rgb(51, 135, 204);">0</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="lit" style="color: rgb(51, 135, 204);">0</span><span class="pun" style="color: rgb(255, 255, 255);">));</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> action </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Sequence</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="pln" style="color: rgb(255, 255, 255);">moveTo</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> actionMoveDone</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> NULL</span><span class="pun" style="color: rgb(255, 255, 255);">);</span>

持續動作

屬性變化動作

屬性變化動作通過屬性值的逐漸變化來實現動畫效果。需要注意的是XXTo和XXBy的區別在於XXTo是表示最終值,而XXBy則表示向量-改變值。

MoveTo和MoveBy

用於使節點做直線運動,設定了動作時間和終點位置,在規定時間內會移動到終點,它們的初始化方法如下:

<span class="pln" style="color: rgb(255, 255, 255);">    </span><span class="typ" style="color: rgb(137, 189, 255);">MoveTo</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> duration</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="kwd" style="color: rgb(226, 137, 100);">const</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Point</span><span class="pun" style="color: rgb(255, 255, 255);">&</span><span class="pln" style="color: rgb(255, 255, 255);"> position</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="typ" style="color: rgb(137, 189, 255);">MoveBy</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> duration</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="kwd" style="color: rgb(226, 137, 100);">const</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Point</span><span class="pun" style="color: rgb(255, 255, 255);">&</span><span class="pln" style="color: rgb(255, 255, 255);"> position</span><span class="pun" style="color: rgb(255, 255, 255);">);</span>

MoveTo的position值表示最後位置,而MoveBy的position則表示移動的位置。

JumpTo和JumpBy

使節點以一定的軌跡跳躍到指定位置,它們的初始化方法如下:

<span class="pln" style="color: rgb(255, 255, 255);">    </span><span class="typ" style="color: rgb(137, 189, 255);">JumpTo</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> duration</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="kwd" style="color: rgb(226, 137, 100);">const</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Point</span><span class="pun" style="color: rgb(255, 255, 255);">&</span><span class="pln" style="color: rgb(255, 255, 255);"> position</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> height</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="kwd" style="color: rgb(226, 137, 100);">int</span><span class="pln" style="color: rgb(255, 255, 255);"> jumps</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="typ" style="color: rgb(137, 189, 255);">JumpBy</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> duration</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="kwd" style="color: rgb(226, 137, 100);">const</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Point</span><span class="pun" style="color: rgb(255, 255, 255);">&</span><span class="pln" style="color: rgb(255, 255, 255);"> position</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> height</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="kwd" style="color: rgb(226, 137, 100);">int</span><span class="pln" style="color: rgb(255, 255, 255);"> jumps</span><span class="pun" style="color: rgb(255, 255, 255);">);</span>

BezierTo和BezierBy

使節點進行曲線運動,運動的軌跡由貝塞爾曲線描述。

每條貝塞爾曲線都包含一個起點和一個終點。在一條曲線中,起點和終點各自包含一個控制點,而控制點到端點的連線稱作控制線。控制點決定了曲線的形狀,包含角度和長度兩個引數。如下圖:

bezier

使用時,我們要先建立ccBezierConfig結構體,設定好終點endPosition以及兩個兩個控制點controlPoint_1和controlPoint_2後,再把結構體傳入BezierTo或BezierBy的初始化方法中:

<span class="pln" style="color: rgb(255, 255, 255);">    ccBezierConfig bezier</span><span class="pun" style="color: rgb(255, 255, 255);">;</span><span class="pln" style="color: rgb(255, 255, 255);">
    bezier</span><span class="pun" style="color: rgb(255, 255, 255);">.</span><span class="pln" style="color: rgb(255, 255, 255);">controlPoint_1 </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Point</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="lit" style="color: rgb(51, 135, 204);">0</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="lit" style="color: rgb(51, 135, 204);">0</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
    bezier</span><span class="pun" style="color: rgb(255, 255, 255);">.</span><span class="pln" style="color: rgb(255, 255, 255);">controlPoint_2 </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Point</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="lit" style="color: rgb(51, 135, 204);">100</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="lit" style="color: rgb(51, 135, 204);">100</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
    bezier</span><span class="pun" style="color: rgb(255, 255, 255);">.</span><span class="pln" style="color: rgb(255, 255, 255);">endPosition </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Point</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="lit" style="color: rgb(51, 135, 204);">50</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="lit" style="color: rgb(51, 135, 204);">100</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> bezierAction </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">BezierTo</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="lit" style="color: rgb(51, 135, 204);">0.5f</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> bezier</span><span class="pun" style="color: rgb(255, 255, 255);">);</span>

ScaleTo和ScaleBy

產生縮放效果,使節點的縮放係數隨時間線性變化,對應初始化方法為:

<span class="pln" style="color: rgb(255, 255, 255);">    </span><span class="typ" style="color: rgb(137, 189, 255);">ScaleTo</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> duration</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> s</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="typ" style="color: rgb(137, 189, 255);">ScaleBy</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> duration</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> s</span><span class="pun" style="color: rgb(255, 255, 255);">);</span>

RotateTo和RotateBy

產生旋轉效果,對應初始化方法為:

<span class="pln" style="color: rgb(255, 255, 255);">    </span><span class="typ" style="color: rgb(137, 189, 255);">RotateTo</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> duration</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> deltaAngle</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="typ" style="color: rgb(137, 189, 255);">RotateBy</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> duration</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> deltaAngle</span><span class="pun" style="color: rgb(255, 255, 255);">);</span>

視覺特效動作

該類用來實現特殊視覺效果

FadeIn, FadeOut和FateTo

產生淡入淡出效果,和透明變化效果,對應的初始化方法為:

<span class="pln" style="color: rgb(255, 255, 255);">    </span><span class="typ" style="color: rgb(137, 189, 255);">FadeIn</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> d</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">    </span><span class="pun" style="color: rgb(255, 255, 255);">淡入</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="typ" style="color: rgb(137, 189, 255);">FadeOut</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> d</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">   </span><span class="pun" style="color: rgb(255, 255, 255);">淡出</span><span class="pln" style="color: rgb(255, 255, 255);"> 
    </span><span class="typ" style="color: rgb(137, 189, 255);">FadeTo</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> duration</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">GLubyte</span><span class="pln" style="color: rgb(255, 255, 255);"> opacity</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="pun" style="color: rgb(255, 255, 255);">一定時間內透明度變化</span>

TintTo和TintBy

設定色調變化,這個動作較少使用,初始化方法為:

<span class="pln" style="color: rgb(255, 255, 255);">    </span><span class="typ" style="color: rgb(137, 189, 255);">TintTo</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> duration</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">GLubyte</span><span class="pln" style="color: rgb(255, 255, 255);"> red</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">GLubyte</span><span class="pln" style="color: rgb(255, 255, 255);"> green</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">GLubyte</span><span class="pln" style="color: rgb(255, 255, 255);"> blue</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="typ" style="color: rgb(137, 189, 255);">TintBy</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> duration</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">GLubyte</span><span class="pln" style="color: rgb(255, 255, 255);"> red</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">GLubyte</span><span class="pln" style="color: rgb(255, 255, 255);"> green</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">GLubyte</span><span class="pln" style="color: rgb(255, 255, 255);"> blue</span><span class="pun" style="color: rgb(255, 255, 255);">);</span>

red, green, blue的取值範圍為0~255

Blink

使節點閃爍,其初始化方法為:

<span class="pln" style="color: rgb(255, 255, 255);">    </span><span class="typ" style="color: rgb(137, 189, 255);">Blink</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> duration</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="kwd" style="color: rgb(226, 137, 100);">int</span><span class="pln" style="color: rgb(255, 255, 255);"> blinks</span><span class="pun" style="color: rgb(255, 255, 255);">);</span>

其中blinks為閃爍次數

Animation

以幀動畫形式實現動畫效果,以下程式碼用兩種方法實現精靈幀動畫效果:

<span class="pln" style="color: rgb(255, 255, 255);">    </span><span class="com" style="color: rgb(174, 174, 174); font-style: italic;">//手動建立動畫</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> animation </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Animation</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">();</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="kwd" style="color: rgb(226, 137, 100);">for</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="kwd" style="color: rgb(226, 137, 100);">int</span><span class="pln" style="color: rgb(255, 255, 255);"> i</span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="lit" style="color: rgb(51, 135, 204);">1</span><span class="pun" style="color: rgb(255, 255, 255);">;</span><span class="pln" style="color: rgb(255, 255, 255);">i</span><span class="pun" style="color: rgb(255, 255, 255);"><</span><span class="lit" style="color: rgb(51, 135, 204);">15</span><span class="pun" style="color: rgb(255, 255, 255);">;</span><span class="pln" style="color: rgb(255, 255, 255);">i</span><span class="pun" style="color: rgb(255, 255, 255);">++)</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="pun" style="color: rgb(255, 255, 255);">{</span><span class="pln" style="color: rgb(255, 255, 255);">
        </span><span class="kwd" style="color: rgb(226, 137, 100);">char</span><span class="pln" style="color: rgb(255, 255, 255);"> szName</span><span class="pun" style="color: rgb(255, 255, 255);">[</span><span class="lit" style="color: rgb(51, 135, 204);">100</span><span class="pun" style="color: rgb(255, 255, 255);">]</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="pun" style="color: rgb(255, 255, 255);">{</span><span class="lit" style="color: rgb(51, 135, 204);">0</span><span class="pun" style="color: rgb(255, 255, 255);">};</span><span class="pln" style="color: rgb(255, 255, 255);">
        sprintf</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="pln" style="color: rgb(255, 255, 255);">szName</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="str" style="color: rgb(101, 176, 66);">"sprite_%02d.png"</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> i</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
        animation</span><span class="pun" style="color: rgb(255, 255, 255);">-></span><span class="pln" style="color: rgb(255, 255, 255);">addSpriteFrameWithFile</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="pln" style="color: rgb(255, 255, 255);">szName</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="pun" style="color: rgb(255, 255, 255);">}</span><span class="pln" style="color: rgb(255, 255, 255);">

    animation</span><span class="pun" style="color: rgb(255, 255, 255);">-></span><span class="pln" style="color: rgb(255, 255, 255);">setDelayPerUnit</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="lit" style="color: rgb(51, 135, 204);">2.8f</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="pun" style="color: rgb(255, 255, 255);">/</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="lit" style="color: rgb(51, 135, 204);">14.0f</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
    animation</span><span class="pun" style="color: rgb(255, 255, 255);">-></span><span class="pln" style="color: rgb(255, 255, 255);">setRestoreOriginalFrame</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">true</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">

    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> action </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Animate</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="pln" style="color: rgb(255, 255, 255);">animation</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
    sprite</span><span class="pun" style="color: rgb(255, 255, 255);">-></span><span class="pln" style="color: rgb(255, 255, 255);">runAction</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="typ" style="color: rgb(137, 189, 255);">Sequence</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="pln" style="color: rgb(255, 255, 255);">action</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> action</span><span class="pun" style="color: rgb(255, 255, 255);">-></span><span class="pln" style="color: rgb(255, 255, 255);">reverse</span><span class="pun" style="color: rgb(255, 255, 255);">(),</span><span class="pln" style="color: rgb(255, 255, 255);"> NULL</span><span class="pun" style="color: rgb(255, 255, 255);">));</span><span class="pln" style="color: rgb(255, 255, 255);">


    </span><span class="com" style="color: rgb(174, 174, 174); font-style: italic;">//檔案建立動畫</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> cache </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">AnimationCache</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">getInstance</span><span class="pun" style="color: rgb(255, 255, 255);">();</span><span class="pln" style="color: rgb(255, 255, 255);">
    cache</span><span class="pun" style="color: rgb(255, 255, 255);">-></span><span class="pln" style="color: rgb(255, 255, 255);">addAnimationsWithFile</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="str" style="color: rgb(101, 176, 66);">"animation.plist"</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> animation2 </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> cache</span><span class="pun" style="color: rgb(255, 255, 255);">-></span><span class="pln" style="color: rgb(255, 255, 255);">getAnimation</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="str" style="color: rgb(101, 176, 66);">"dance_1"</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">

    </span><span class="kwd" style="color: rgb(226, 137, 100);">auto</span><span class="pln" style="color: rgb(255, 255, 255);"> action2 </span><span class="pun" style="color: rgb(255, 255, 255);">=</span><span class="pln" style="color: rgb(255, 255, 255);"> </span><span class="typ" style="color: rgb(137, 189, 255);">Animate</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="pln" style="color: rgb(255, 255, 255);">animation2</span><span class="pun" style="color: rgb(255, 255, 255);">);</span><span class="pln" style="color: rgb(255, 255, 255);">
    sprite</span><span class="pun" style="color: rgb(255, 255, 255);">-></span><span class="pln" style="color: rgb(255, 255, 255);">runAction</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="typ" style="color: rgb(137, 189, 255);">Sequence</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="pln" style="color: rgb(255, 255, 255);">action2</span><span class="pun" style="color: rgb(255, 255, 255);">,</span><span class="pln" style="color: rgb(255, 255, 255);"> action2</span><span class="pun" style="color: rgb(255, 255, 255);">-></span><span class="pln" style="color: rgb(255, 255, 255);">reverse</span><span class="pun" style="color: rgb(255, 255, 255);">(),</span><span class="pln" style="color: rgb(255, 255, 255);"> NULL</span><span class="pun" style="color: rgb(255, 255, 255);">));</span>

動畫建立後需要一個動畫播放器來播放這些動畫,這個播放器就是Animate。

複合動作

通常在開發中我們需要將各種動作組合起來再讓節點執行,複合動作的作用就是將各種動作組合在一起。而且,複合動作本身也是動作。因此可以作為一個普通動作嵌入到其他動作中。

注意:Sequence動作不能嵌入其他複合動作內使用,DelayTime不屬於複合動作,但是隻能在複合動作內使用。

DelayTime

延時動作其實什麼都不做,提供一段空白期,它只有一個初始化方法:

<span class="pln" style="color: rgb(255, 255, 255);">    </span><span class="typ" style="color: rgb(137, 189, 255);">DelayTime</span><span class="pun" style="color: rgb(255, 255, 255);">::</span><span class="pln" style="color: rgb(255, 255, 255);">create</span><span class="pun" style="color: rgb(255, 255, 255);">(</span><span class="kwd" style="color: rgb(226, 137, 100);">float</span><span class="pln" style="color: rgb(255, 255, 255);"> d</span><span class="pun" style="color: rgb(255, 255, 255);">);</span>

d表示需要延時的時間。

Repeat/RepeatForever

相關推薦

動作Cocos2d-x 動作分類使用總結

本文蒐集了幾篇關於動作的文章,作為收藏。 //////////////////這一段轉自Cocos2d-x官方中文文件 v3.x//////////////////////////// 動作類(Action)是所有動作的基類,它建立的一個物件代

專欄 - Cocos2d-x 3.x 圖形學渲染

Cocos2d-x 3.x 圖形學渲染 該專欄主要是介紹Cocos2d-x 3.x圖形學渲染技術講解,針對的是3D模型的材質渲染,幫助喜歡3D的開發者快速掌握該技術。。。。。

支付Cocos2d-x IOS內購(IAP支付)

【說明】 遊戲開發中,整合支付是一個重要的環節,AppStore稽核指南規定,App內虛擬物品必須使用IAP支付。這篇文章主要記錄我在整合IAP的過程,我參考了泰然網的一篇文章,對其進行了封裝和擴充套件,並對結構和使用流程進行了簡單的介紹,僅供自己學習使用。 關於iTune

加密Cocos2d-x PNG圖片資源加密

實現原理     如果你對實現原理並不感興趣,只是想直接使用的話可以跳過這節。首先我假設讀者已經清楚PNG影象檔案結構了,如果沒有的話這裡建議可以看看《揭祕資料解密的關鍵技術》第5章,這章裡面專門對PNG影象格式進行了介紹。或者看看《PNG檔案格式詳解》這篇

儲存Cocos2d-x將資源目錄(Assets)檔案拷貝到可寫目錄

【說明】 將安卓的資源目錄(Assets)下得指定檔案,拷貝到可寫目錄指定位置,以便對檔案進行讀寫。 【正文】 1. 首先得在可寫目錄建立指定的資料夾,當然也可以不用,如果建立目錄,則需包含標頭檔案。 #include <sys/stat.h> #include

Cocos2dx3.2從零開始Cocos2d-x 3.2專案建立和編譯,移植到Android

最近決定入手Cocos2d-x 3.2。目前最新版。 起初糾結於Cocos2d 還是Unity3d,後來糾結於Cocos2d-x 2.x還是Cocos2d-x 3.x。 遇到問題記錄。 一、建立Coc

專欄 - cocos2d-x遊戲開發

cocos2d-x遊戲開發 使用cocos2d-x開源引擎開發Iphone遊戲。 Cocos2D是iPhone開發中一個非常有用的庫,它可以讓你在建立自己的iPhone遊戲時節省很多的時間。它具有很多的功能,比如sprite(精靈

cocos2d-x 動作分類使用

       原本計劃是把動作的概念理清,並分類介紹如何使用,但是網上看到幾篇寫得比較詳細,而且都有例項,在此就轉載一下,並表示一下感謝。 //////////////////這一段轉自Cocos2d-x官方中文文件 v3.x////////////////

玩轉cocos2d-x之三十一弱聯網伺服器的通訊

這裡採用Apache+php搭建了一個簡易伺服器,服務端用php語言,客戶端採用cocos2d-x的CCHttpClient類通過http方式訪問服務端資源。模擬了cocos2d-x提交賬戶和密

ECharts3.x中的點擊事件行為

sta tar consola aid 處理 mouseover ati utl rest 在ECharts中主要通過 on 方法添加事件處理函數,ECharts中的事件主要分為兩種,1)鼠標事件,在鼠標click or hove 時觸發鼠標事件; 2)另外一種是在EC

SVN-日誌顯示動作解釋

如圖,當我們檢視分支的修改記錄時,會有不同版本的,點選檢視某個版本是在下方欄位裡會有動作、受影響目錄、描述、和註釋的解釋,此次記錄下動作中的字母分別表示的意思: A——》add——》新增 C——》conflict——》衝突 D——》delete——》刪除

cocos2d-x 動作

int 動作 相關 n) 分享 img 間隔 .com inter 動作類是Action      IntervalAction是間隔動作,InstantAction是瞬時動作。   動作的管理是要由節點負責的,任何的節點都可以管理節點,如精靈、菜單、層、甚至場景都可以管理

玩轉cocos2d-x之十二plist解析工具:Anti_TexturePacker

之前拿了一些別人的圖片素材,是用TexturePacker打包合成的,結果寫程式的時候不知道每個合成前小png圖的名字是什麼,只能一個一個從plist檔案中找,然後猜測對應的名字,再進行顯示,如果不對,

玩轉cocos2d-x之三十九Cocos2d-x 3.0截圖功能整合

3.0的截圖和2.x的截圖基本上相同,都是利用RenderTexture來處理,在渲染之前呼叫call函式,然後呼叫Cocos的場景visit函式對其進行渲染,渲染結束後呼叫end函式即可。只是3.0截圖需要在截完屏的下一幀才能處理RenderTexture,這點要注意。關

玩轉cocos2d-x之二十六資料結構CCDictionary

CCDictionary在cocos2d-x中被大量的應用,比如CCTexureCache,CCSpriteFramCache等等。 1.實現原理 1.1.uthash CCDiction

玩轉cocos2d-x之三十四繪圖:CCDrawingPrimitives和CCDrawNode

最近忙出翔了,這年過的也揪心。好久沒來更新部落格了,今天就來寫一寫cocos2d-x中圖形的繪製。 1.概述 其實cocos2d-x封裝了大量的opengl的繪圖函式,我們可以很輕鬆的在遊戲

玩轉cocos2d-x之三十點九圖和輸入框的使用

登入介面一個帳號/密碼輸入框或者主角命名框是少不了的。這節就來了解一下點九圖的輸入框的使用。這裡只是介紹基礎知識,並不進行平臺的移植,也不處理跨平臺可能出現的問題。 1.點九圖CCScale9S

玩轉cocos2d-x之二十九利用CCClipingNode做遊戲遮罩

新手引導是遊戲中必備的(除了奇葩的MT用一段動畫開始),也是玩家對遊戲的第一印象,重要性不言而喻。一般採用的遮罩的形式來突出引導重點,同時遮蔽其他功能。這裡簡單的介紹一下游戲遮罩的實現,並給出一個

玩轉cocos2d-x之二十二多執行緒和同步02-售票

pthread有很多不同應用,官網都有相應的API解釋和Sample,這裡不再重複,本文主要介紹一個cocos2d-x多執行緒和同步示例。 1.售票 孫鑫老師的C++和Java多執行緒售票一直讓

玩轉cocos2d-x之二十三多執行緒和同步03-圖片非同步載入

cocos2d-x中和Android,Windows都一樣,如果在主執行緒中處理一些耗時操作,那麼主執行緒就會出現阻塞現象,表現在介面上就是卡住,未響應等情況。為了避免這種情況的出現,我們需要在後