Форум программистов, компьютерный форум, киберфорум
pigah
Войти
Регистрация
Восстановить пароль

Android начало работы с AndEngine

Запись от pigah размещена 20.02.2012 в 00:44
Показов 25990 Комментарии 1
Метки java

AndEngine — это бесплатный движок для 2d игр под Android, один из наиболее популярных.
Взять можно здесь.
Теперь создадим новый Android Project.
Далее создадим в корне новый каталог с именем lib и скопируем в этот каталог, заранее скаченный файл andengine.jar.
Затем, нажатием правой кнопки мыши на andengine.jar вызываем меню и выбираем пункт «Build Path» -> «Add To Build Path», тем самым добавляя библиотеку в проект. С настройками пока закончим и перейдем непосредственно к коду. Откроем наш главный Activity.
Java
1
2
3
4
5
6
7
8
9
10
11
package com.andengine.hello;
    import android.app.Activity;
    import android.os.Bundle;
    public class Main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
        setContentView(R.layout.main);
    }
    }
Удалим функцию OnCreate, а класс Activity заменим на BaseGameActivity из библиотеки AndEngine. BaseGameActivity — это основной класс графического приложения, наследуемый от Activity. Теперь нам нужно переопределить следующие 4 функции этого класса.

Engine onLoadEngine() — в этой функции будем создавать объект Engine, это и есть основной класс движка.
void onLoadResources() — в этой функции мы загружаем необходимые нам ресурсы, такие как шрифты, текстуры и т.п.
Scene onLoadScene()— здесь мы создаем объект Scene, отвечающий за отображение графических объектов, таких как спрайты, линии, прямоугольники и т.п.
void onLoadComplete() — эта функция выполняется самой последней, в ней можно выполнить какие то обобщающие действия.

После всех изменений, исходный код класса Main будет выглядеть так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.andengine.hello;
    import org.anddev.andengine.engine.Engine;
    import org.anddev.andengine.entity.scene.Scene;
    import org.anddev.andengine.ui.activity.BaseGameActivity;
    public class Main extends BaseGameActivity {
    @Override
    public Engine onLoadEngine() {
    // TODO Auto-generated method stub
    return null;
    }
    @Override
    public void onLoadResources() {
    // TODO Auto-generated method stub
    }
    @Override
    public Scene onLoadScene() {
    // TODO Auto-generated method stub
    return null;
    }
    @Override
    public void onLoadComplete() {
    // TODO Auto-generated method stub
    }
    }
Для начала нам нужно определить разрешение экрана и создать камеру
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
       // размеры окна отображения
    public static int CAMERA_WIDTH ;
    public static int CAMERA_HEIGHT ;
    // класс Camera определяет текущую область видимости на экране
    private Camera mCamera;
 
        @Override
        public Engine onLoadEngine() {
        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        Log.d("Resolution", "resolution: "+metrics.widthPixels+" x "+ metrics.heightPixels);
        CAMERA_WIDTH=metrics.widthPixels;//Получаем ширину экрана устройства
        CAMERA_HEIGHT=metrics.heightPixels;//Получаем высоту экрана устройства
           this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);    
       
        return new Engine(new EngineOptions(true, 
                                 ScreenOrientation.LANDSCAPE, 
                                 new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT),
                                 this.mCamera));
}
Теперь изменим функцию Scene onLoadScene() для того чтобы изменить цвет фона на синий:
Java
1
2
3
4
5
6
7
8
9
@Override
public Scene onLoadScene() {
      this.mEngine.registerUpdateHandler(new FPSLogger());
 
      final Scene scene = new Scene();
      scene.setBackground(new ColorBackground(0, 0, 0.8784f));
 
return scene;
}
Метки java
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 1
Комментарии
  1. Старый комментарий
    Аватар для dajver
    Когда продолжение?
    Запись от dajver размещена 04.03.2012 в 15:13 dajver вне форума
 
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru