2013-07-10 2 views
5

У меня проблема с прокруткой моей childscene. Я создал CameraScene, который я пытаюсь прокрутить с помощью события touch. Однако моя детская сцена не прокручивается, если я прокручиваю камеру, прикрепленную к двигателю, родительская сцена прокручивается в порядке.Прокрутка childscene в AndEngine

Так как я могу получить свою детскую сцену, чтобы прокручивать без объектов, прикрепленных к свиткам с моими родителями?

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; 
     } 
    }); 
} 

ответ

0

Я на самом деле не в AndEngine, и я не уверен, если я получаю вашу проблему права (в вашем коде нет ничего о «myparents» или «childscene»), но когда что-то прилагается к вашей сцене , то это означает, что он будет двигаться вместе с ним. Вы могли бы прокручивать своих детей в другом направлении, чтобы сохранить свое положение, но это может привести к неприятностям в долгосрочной перспективе. Если это возможно, попробуйте отделить свою сцену прокрутки и ваши объекты, а это значит, что они не должны быть детьми друг друга. Вместо этого, если вы хотите, чтобы они поддерживали их, дайте им общий родитель. Если вы переместите один объект сейчас, братья и сестры не будут. Надеюсь, это поможет.

0

Из вашего описания я думаю, что ваша материнская сцена является один получает свой вход, так что я угадал, пожалуйста, поправьте меня, если я ошибаюсь, что вы настраиваете свой ребенок сцена что-то вроде этого:

mMainScene.attachChild(mChildScene); 

В этом случае вам придется иметь дело с отклонением ввода дочернего элемента вместо родителя. Тем не менее, у вас есть несколько вариантов здесь:

  1. Если ваш ребенок сцена занимает весь экран, и вам не нужно беспокоиться об обновлении/рисунок вашей родительской сцены, просто поменять местами сцены с

    mEngine.setScene (mChildScene);

  2. Если вам нужно сохранить чертеж и обновить родительскую сцену, проверьте предварительно подготовленный класс MenuScene и метод Scene.setChildScene(), есть один пример того, как это можно использовать в проекте AndengineExamples. Использование этого класса позволит вам взять ввод на дочерней сцене, но все еще рисовать и обновлять основную сцену, даже пусть вы настроите своего ребенка модальным способом.

Смежные вопросы