2013-07-10 20 views
5

Ho un problema durante lo scorrimento del childscene. Ho creato una CameraScene che sto cercando di scorrere con un evento touch. La mia sequenza di bambini non scorre, tuttavia, se si scorre sulla fotocamera collegata al motore, la scena genitore scorre perfettamente.Scorrimento di un childscene in AndEngine

Quindi, come faccio a far scorrere la scena di mio figlio senza che gli oggetti collegati ai rotoli di scena dei myparents continuino?

public StatsScene(Context context, VertexBufferObjectManager vbo) { 
    super(new SmoothCamera(0, 0, WITDH, HEIGHT, 0, SPEEDY, 0)); 

    this.setOnSceneTouchListener(new IOnSceneTouchListener() { 
     @Override 
     public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) { 
      if(pSceneTouchEvent.getAction() == MotionEvent.ACTION_DOWN) { 
       mTouchY = pSceneTouchEvent.getMotionEvent().getY(); 
      } 
      else if(pSceneTouchEvent.getAction() == MotionEvent.ACTION_MOVE) { 
       float newY = pSceneTouchEvent.getMotionEvent().getY(); 

       mTouchOffsetY = (newY - mTouchY); 

       float newScrollX = getCamera().getCenterX(); 
       float newScrollY = getCamera().getCenterY() - mTouchOffsetY; 

       getCamera().setCenter(newScrollX, newScrollY); 

       mTouchY = newY; 
      } 
      return true; 
     } 
    }); 
} 

risposta

0

Io non sono davvero in AndEngine e non sono sicuro se ho il tuo problema a destra (nel codice c'è niente di "myparents" o "childscene"), ma quando qualcosa è attaccato alla scena , quindi questo implica che si muoverà con esso. Puoi far scorrere i tuoi figli nella direzione opposta per mantenere la loro posizione, ma questo potrebbe metterti nei guai a lungo termine. Se è possibile, prova a separare la scena di scorrimento e i tuoi oggetti, nel senso che non dovrebbero essere figli l'uno dell'altro. Invece, se vuoi che vengano mantenuti collegati, dai loro un genitore comune. Se muovi un oggetto ora, i fratelli non lo faranno. Spero possa aiutare.

0

Dalla tua descrizione penserei che la scena genitore è quello di ottenere il vostro ingresso in modo sto cercando di indovinare, per favore correggetemi se sbaglio, che si sta impostando il vostro bambino scena qualcosa di simile:

mMainScene.attachChild(mChildScene); 

In questo caso dovrai affrontare la deviazione dell'input al figlio anziché al genitore. Tuttavia, avete alcune opzioni qui:

  1. Se la scena del bambino occupa schermo intero e non c'è bisogno di preoccuparsi di aggiornamento/disegnare la scena madre, semplicemente scambiare le scene con

    mEngine.setScene (mChildScene);

  2. Se è necessario continuare a disegnare e aggiornare la scena padre, controllare il metodo pre-made di MenuScene e il metodo Scene.setChildScene(), c'è un esempio su come utilizzarlo nel progetto AndengineExamples che penso. L'uso di questo corso ti consentirà di prendere in considerazione la scena del bambino, ma continuando a disegnare e ad aggiornare la tua scena principale, è anche possibile impostare il tuo bambino in modo modale.