среда, 14 марта 2012 г.

Andengine. HUD. Интерфейс игрового экрана

Введение

HUD происходит от сокращения Head-Up Display и представляет собой все те части пользовательского интерфейса, которые имеют фиксированное положение на экране. В игре это обычно счетчики жизни, боеприпасов, карта уровня, номер уровня и т.д. Andengine имеет легкую встроенную поддержку HUD элементов управления на экране.

Создание экранных элементов управления

Прежде всего, как и в любом andengine приложении, необходимо создать сцену

Scene scene = new Scene();

Затем мы должны создать элементы управления с помощью метода AnalogOnScreenControl

 analog = new AnalogOnScreenControl(0, padY, game.camera,
 TextureManager.mOnScreenControlBaseTextureRegion,
 TextureManager.mOnScreenControlKnobTextureRegion, 0.3f, 200,
 new IAnalogOnScreenControlListener() {
 @Override
 public void onControlChange(final BaseOnScreenControl pBaseOnScreenControl,
 final float pValueX, final float pValueY) {
 //TODO your analog movement control events
 }
 @Override
 public void onControlClick(final AnalogOnScreenControl pAnalogOnScreenControl) {
 //TODO your onClick controll events
    } 
});

Если необходимо, можно изменить формат основного изображения или кнопок при помощи методов подкласса Entity


analog.getControlBase().setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
 analog.getControlBase().setAlpha(0.65f);
 analog.getControlKnob().setAlpha(0.65f);
 analog.getControlKnob().setScale(scale);
 analog.getControlBase().setScaleCenter(0, 0);
 analog.getControlBase().setScale(scale);
 analog.refreshControlKnobPosition();

Последний шаг - добавление элементов на нашу сцену.

scene.setChildScene(analog);

Примечание: мы добавляем новые элементы сцены. Они будут фиксированы и не будут скроллироваться вашей камерой

Удаление элементов управления

Удаляем элементы управления аналогично удалению объекта со сцены:

mEngine.runOnUpdateThread(new Runnable() {
 
  @Override
  public void run() {
   mCamera.getHUD().detachSelf();
  }
});

Комментариев нет: