2012-07-03 60 views
0

我有一組精靈lists.i想要刪除最上面的精靈如果精靈重疊。我如何覆蓋cocos2d-android中的ccTouchbegan(刪除覆蓋的精靈)

如果(popRect1.containsPoint(popRect1,位置)) {

     BaloonList1.remove(baloons); 
         baloons.removeSelf(); 

       } 

如果(popRect2.containsPoint(popRect2,位置)) {

     BaloonList2.remove(baloons); 
         baloons.removeSelf(); 

       }    

當相同列表的2個精靈重疊,如果我觸摸它們,只有最頂層的精靈將被刪除...如果2個精靈來自不同的列表,並且當我觸摸最頂端的精靈時,他們兩個都將被刪除(就像我的觸摸截取的一樣..我認爲它的發生是因爲至uch點與精靈的有界矩形)..我搜索了很多。有人說重寫TouchBegan..registerWithTouchDispatcher ...是否有任何想法???????我知道這可能是一個簡單的問題4u guys.Please讓我知道如果你想要更多的代碼或描述

回答

0

addChild(CCNode子,int z);

如果設置像0,1,2,3,4 z的值..等等..

在此之後,當你觸摸屏幕上的z值決定免去精靈。 什麼sprite你想要刪除的情況下首先重疊是發生,給z的值是最大。給其他人。

0

您還必須先保存精靈添加的標記。 假設我們有2個精靈A和B.

情況1)如果A和B都具有相同的z值

如果再加乙精靈和後一個Sprite則A將出現在乙子畫面的上方。所以我們需要設置最後添加哪個精靈的狀態。據此,你必須刪除精靈。情況2)如果A和B具有不同的z值 在這種情況下。你有清晰的圖像。具有更多z值的精靈將出現在其他上方。所以你可以刪除這個精靈。


在你的情況下,如果你使用情況1,那麼你也必須保持第四狀態。

假設我們有兩個的ArrayList:ArrayList1和ArrayList2

,我們節約地位的ArrayList:ArrayListStatus1,ArrayListStatus2

我們的狀態都初始化爲1 INT狀態= 1;

如果我們在我們還爲在ArrayListStatus添加到相應的狀態數組列表,當精靈,我們將增加它會增加一個加狀態下一次有遞增狀態,因此任何ArrayList中添加一個精靈。

現在我們有了這個命令,所以我們可以應用檢查哪個精靈在上面。狀態對應於狀態數組列表。