2013-08-04 1 views
0

Это мой первый опыт использования AndEngine, и когда я пытаюсь создать Rectangle, он падает прямо на эту строку. Я пытаюсь использовать Rectangles для кнопок для перемещения игрока влево или вправо. Я нашел учебник для кнопок: http://www.matim-dev.com/creating-leftright-game-controller-buttons.html. Я даже попытался использовать событие касания для сцены, и вместо этого он разбился. Я искал ответы в течение долгого времени, но все равно не мог найти ответа, поэтому теперь я полностью застрял. Любая помощь будет оценена.AndEngine, создающий прямоугольник, вызывает приложение

HUD controller = new HUD(); 
    Rectangle left = new Rectangle(0, 0, (screenWidth/2), (screenHeight), getVertexBufferObjectManager()) // It crashes right on this line. 
    { 
     @Override 
     public boolean onAreaTouched(TouchEvent touchEvent, float X, float Y) 
     { 
      // Move left 
      if (touchEvent.isActionDown()) 
      { 
       isLeftTouched = true; 
      } 
      if (touchEvent.isActionUp()) 
      { 
       isLeftTouched = false; 
       player1.stop(); 
      } 
      return true; 
     } 

     @Override 
     public void onManagedUpdate(float secondsElapsed) 
     { 
      if (isLeftTouched) 
      { 
       // Execute your actions. 
       player1.moveLeft(); 

      } 
      super.onManagedUpdate(secondsElapsed); 
     } 
    }; 

    Rectangle right = new Rectangle(screenWidth/2, 0, screenWidth/2, screenHeight, getVertexBufferObjectManager()) 
    { 
     @Override 
     public boolean onAreaTouched(TouchEvent touchEvent, float X, float Y) 
     { 
      // Move right 
      if (touchEvent.isActionDown()) 
      { 
       isRightTouched = true; 
      } 
      if (touchEvent.isActionUp()) 
      { 
       isRightTouched = false; 
       player1.stop(); 
      } 
      return true; 
     } 

     @Override 
     public void onManagedUpdate(float secondsElapsed) 
     { 
      if (isRightTouched) 
      { 
       // Execute your actions. 
       player1.moveRight(); 
      } 
      super.onManagedUpdate(secondsElapsed); 
     } 
    }; 

    controller.registerTouchArea(left); 
    controller.registerTouchArea(right); 
    controller.attachChild(left); 
    controller.attachChild(right); 

    camera.setHUD(controller); 

Вот LogCat:

E/AndroidRuntime(2440): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.teej1410.glider/ com.teej1410.glider.MainActivity}: java.lang.NullPointerException 
E/AndroidRuntime(2440): at com.teej1410.glider.MainActivity.createControllers(MainActivity.java:169) 
E/AndroidRuntime(2440): at com.teej1410.glider.MainActivity.onCreateOther(MainActivity.java:132) 
E/AndroidRuntime(2440): at com.teej1410.glider.MainActivity.onCreateEngineOptions(MainActivity.java: 51) 
W/ActivityManager( 434): Force finishing 
+0

logcat, plz .... – VenomVendor

ответ

1

Я установил ее. У меня были прямоугольники, созданные в отдельном методе, который я вызывал слишком рано.