2011-11-06 4 views
0

내 앱에 놓습니다. 디스플레이 위에 드래그 앤 드롭해야하는 스프라이트가 있습니다. BitmapTextureAtlas와 해당 TextureRegion을 정의한 다음 해당 데이터에서 드래그 가능한 스프라이트를 생성했습니다.ANDROID ANDENGINE - 끌어서 놓기 스프라이트를

일부 스프라이트는 같은 위치에 설정해야하며 겹쳐 써야합니다.

스프라이트 솔기가 겹쳐져있는 것을 제외하고는 모두 정상적으로 작동하지만 상단에서 첫 번째를 드래그하는 대신 드래그하여 멀리 드래그하면 가장 아래쪽의 첫 번째 항목을 항상 드래그합니다.

어떻게 해결할 수 있습니까?

이 기능은 스프라이트

public Vector<Sprite> initSprite(Vector<TextureRegion> tRegionV){ 
    Vector<Sprite> aux = new Vector<Sprite>(); 
    for(int i=0; i<dataV.size(); i++){ 
     final int gap = dataV.elementAt(i).gap; 
     sprite = new Sprite(dataV.elementAt(i).x, dataV.elementAt(i).y, tRegionV.elementAt(i)) 

     // gestione del drag & drop 
     { 
      @Override 
      public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, 
        final float pTouchAreaLocalX, final float pTouchAreaLocalY) { 
       setPosition(pSceneTouchEvent.getX() - this.getWidth()/2, pSceneTouchEvent.getY() 
         - gap /*this.getHeight()/2*/); 
       //System.out.println("POSIZIONE X: "+(pSceneTouchEvent.getX()- this.getWidth()/2) +" --- Y: " +(pSceneTouchEvent.getY() - this.getHeight()/2)); 
       //System.out.println("ALTEZZA: "+this.getHeight()); 

       return true; 
      } 
     }; 

     if(sprite==null) System.out.println("AAAAAA sprite" +i+" null"); 
     aux.addElement(sprite); 
    } 

    return aux; 
} 

을 inizializes와 나는 장면에서 스프라이트이 방법을 설정

for(int x=0;x<spriteV.size();x++){ 
     scene.getLastChild().attachChild(spriteV.elementAt(x)); 
    } 

답변

2

참조 : MultiTouchExample.java

당신은 아마하고 싶은 :

this.mScene.setOnAreaTouchTraversalFrontToBack(); 
+0

작동합니다. 에스! 난 이미 레이어를 사용하여 수정 프로그램을 발견했지만 귀하의 도움말 whitout 레이어도 잘 작동합니다. 감사. 이제 위에서 설명한 또 다른 simila 문제가 있습니다. 너 anithing에 대해? – NemoPhobia