В моем приложении у меня есть перетаскиваемый спрайт, один на том же уровне, другие разделены на разные слои, все сложены один над другим.
когда я перетаскиваю один, мне нужно, чтобы этот спрайт появлялся всегда на foregorund.
Если я возьму спрайт, который был на втором слое (например), и мне нужно поместить его поверх другой буквы, которая находится на первом слое, мне нужно, чтобы та, к которой я прикасаюсь, появилась над второй буквой. Я думаю, что мне нужно изменить слой программно в "onAreaTouched" в случае, как
if(pSceneTouchEvent.isActionDown()) {
//TOCCO DELLO SPRITE
}
а как? или существует команда для установки текущего спрайта в качестве foregorund?
EDIT
По словам скайзо, я попробовал этот способ.
в своей основной деятельности я определил два разных слоя, один для всех спрайтов, а другой в качестве переднего плана
Entity base = new Entity();
Entity foreground = new Entity();
scene.attachChild(base);
scene.attachChild(foreground);
spriteV = vRes.initSprite(tRegionV, scene, base, foreground); //this invoce a method that initialize a vector containing all my sprites
for(int x=0;x<spriteV.size();x++){
base.attachChild(spriteV.elementAt(x)); //here i attach every sprite to the scene
}
в другом классе я определил onAreaTouched для каждого спрайта, и я сделал это
@Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent,
final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
if(pSceneTouchEvent.isActionDown()){
//TOCCO DELLO SPRITE
if(getY()<=261 )
setPosition(pSceneTouchEvent.getX() - this.getWidth() / 2, pSceneTouchEvent.getY()
- gap);
}
//switch layer
base.detachChild(sprite);
fore.attachChild(sprite);
}
if(pSceneTouchEvent.isActionMove()){
//MOVIMENTO DELLO SPRITE
setPosition(pSceneTouchEvent.getX() - this.getWidth() / 2, pSceneTouchEvent.getY()
- gap);
}
if(pSceneTouchEvent.isActionUp()){
//RILASCIO DELLO SPRITE
float x =getX();
float y =getY();
if(y<=261 ){
if(y>sY-20 && y<sY+20 && x>sX-20 && x<sX+20){
return true;
}
else {
val=fallInCell(x,y,this.getHeight());
setPosition(val[0],val[1]);
}
}
//switch layer
fore.detachChild(sprite);
base.attachChild(sprite);
}
return true;
}
};
aux.addElement(sprite);
}
return aux;
}
но когда я касаюсь спрайта, мое приложение закрывается принудительно. Здесь ошибка logcat
ОШИБКА LOGCAT http://i41.tinypic.com/ob02t0.png