2012-10-19 22 views
5

Başka bir hareketli grafiğe resim eklemeye çalışıyorum ve üst öğesinin arkasına iliştiriyorum.AndEngine- Çizim nesnesinin çocuğunun üst öğesinin arkasına yazılması

Bu genellikle çok kolaydır ve kodumda bir öncekim var - ama bir nedenden dolayı, bir kerede, işe yaramıyor. İşlem genellikle ebeveynin Z dizinini bir sayıya ayarlamak ve çocuğuna daha düşük bir Z indeksi atamak içindir. Burada, rect'un ebeveyn olduğu ve icon'un eklendiği koddur; her ikisi de bir ana öğeye eklenir. Sonra her şeyde sortChildren() yöntemini denedim (rect, ana varlık ve hatta sahne kendisi); Bunun verimli olmadığını biliyorum, ama sadece bir şeyin yakalanıp yakalanmadığını görmek istedim. Olmaz. Mantıken

for (int i=0; i<levelsList.size(); i++) { 
    rect = new Sprite(i*(width+padding), 
         0, 
         width, 
         height, 
         levelSelectorSquareRed, 
         this.getVertexBufferObjectManager()); 
    icon = new Sprite((rect.getWidth()-innerWidth)/2f, 
         (rect.getHeight()-innerHeight)/2f, 
         innerWidth, 
         innerHeight, 
         levelIcons.get(i), 
         this.getVertexBufferObjectManager()); 
    rect.setZIndex(1); 
    icon.setZIndex(0); 
    rect.attachChild(icon); 
    rect.sortChildren(); 
    levelSquares.attachChild(rect); 
} 

levelSquares.setPosition(0, (CAMERA_HEIGHT-height)/2f); 
levelSquares.sortChildren(); 
levelSelectorScene.attachChild(levelSquares); 
levelSelectorScene.sortChildren(); 

, bu overkill olmalı ve çalışma var, ama ben bir şey eksik değil/ geçerli: icon hala rect üzerine çekiliyor? SO hakkında büyülü bir şey yoktur

Teşekkür

+0

Çocuk eklediğinizde, çocuğun ZIndex'ini sıfıra döndürdüğünü okurum. Ayarlamadan önce eklemeyi denediniz mi? Bunun için doğrulama bulamıyorum, bu yüzden ... – Geobits

+0

Evet, ama ne yazık ki, bu işe yaramadı. Bunu, her iki sprite da bir varlığa iliştirerek çözdüm ve sonra bunları varlığa ayırdım. – LoneDuck

+0

Evet, bunu yorumladıktan hemen sonra gördüm. Çocuğun/ebeveyn ilişkisinin korunmasını istediniz, bu yüzden zaten denemeye değer olabileceğini düşündüm. Çalıştığına sevindim. – Geobits

cevap

17

. Bir soruna çok takılıp kaldım, sonunda pes ediyorum ve bu sitede bir soru soruyorum. Dakikalar içinde sorun kolaylıkla çözülür.

çözeltisi:

sayılı AndEngine GLES2 içinde Children bunların parents arkasında çizilemez. Fakat! child hareketli grafiğini ana hareketli grafiğe eklemek yerine, bir öğeye her ikisini de ekleyebilir, Z dizini verebilir ve ardından varlığı sıralayabilirsiniz. Eğer AndEngine GLES2 kullanıyorsanız

levelSquares.attachChild(rect); 
levelSquares.attachChild(icon); 
rect.setZIndex(1); 
icon.setZIndex(0); 
levelSquares.sortChildren(); 
+3

Sihirli şey hakkında hemfikirim ...... Sanırım bunun bir soru sormak için sahip olduğunuz problemi ve çözmeyi denediğiniz şeyi açıkça belirtmeniz gerektiği gerçeğiyle ilgisi var. Bazen bu, alternatif düşünce biçimlerini tetiklemeye yardımcı olur. Oyuna iyi şanslar! –

+0

teşekkürler. özü özümleri – JohnRaja

+0

Bu doğru değil! z-endeksi eksi (f.e. -1) olarak ayarlamak için ana sayfanın arkasına çizin! setZIndex (1); ve parent.sortChildren() öğesini çağırmayı unutmayın; – sjkm

5

oldukça kolaydır: çocuğu taktıktan sonra, sadece negatif bir değer olan Z-Index ayarlayın.