Próbuję dołączyć duszka do innego duszka i dołączyć je za jego rodzica.AndEngine - Dziecko sprite'a rysującego za rodzicem
Zwykle jest to bardzo proste i mam je już wcześniej w moim kodzie - ale z jakiegoś powodu, w jednym przypadku, to nie działa.
Proces zwykle polega na ustawieniu indeksu Z nadrzędnego na pewną liczbę i przypisaniu niższego indeksu Z jego elementowi potomnemu. Oto kod, w którym rect
jest rodzica, i icon
jest dołączony do niego; oba są dołączone do jednostki nadrzędnej. Potem wypróbowałem metodę sortChildren()
na wszystkim (rect, parent entity, a nawet sama scena); Wiem, że to nie jest skuteczne, ale chciałem tylko sprawdzić, czy coś się przyda. Tak nie jest. icon
wciąż jest przeciągany przez rect
:
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();
Logicznie rzecz biorąc, powinno to być przesadą i mają to działa, ale to nie jest/ Am I brakuje czegoś?
Dzięki
Czytam, że po podłączeniu dziecka, przywraca ZIndex dziecka do zera. Czy próbowałeś dołączyć przed ustawieniem? Nie mogę znaleźć na to weryfikacji, więc ... – Geobits
Tak, ale niestety, to nie działa tak dobrze. Rozwiązałem to, przywiązując oba sprite'y do istoty, a następnie posortowałem je w istocie. – LoneDuck
Tak, zobaczyłem to zaraz po tym, jak skomentowałem. Zakładałem, że chcesz zachować związek dziecko/rodzic, więc uznałeś, że i tak warto spróbować. Cieszę się, że to działa. – Geobits