package ru.sapfil.helloworld;
// импорт свернут для удобства
import java.io.IOException;
import java.io.InputStream;
import org.andengine.engine.camera.Camera;
import org.andengine.engine.options.EngineOptions;
import org.andengine.engine.options.ScreenOrientation;
import org.andengine.engine.options.resolutionpolicy.FillResolutionPolicy;
import org.andengine.entity.scene.Scene;
import org.andengine.entity.scene.background.Background;
import org.andengine.entity.sprite.Sprite;
import org.andengine.opengl.texture.ITexture;
import org.andengine.opengl.texture.bitmap.BitmapTexture;
import org.andengine.opengl.texture.region.ITextureRegion;
import org.andengine.opengl.texture.region.TextureRegionFactory;
import org.andengine.ui.activity.SimpleBaseGameActivity;
import org.andengine.util.adt.io.in.IInputStreamOpener;
import org.andengine.util.debug.Debug;
public class HelloWorldActivity extends SimpleBaseGameActivity {
// ===========================================================
// Constants
// ===========================================================
private static final int CAMERA_WIDTH = 480; // ширина экрана
private static final int CAMERA_HEIGHT = 320; // высота экрана
// ===========================================================
// Fields
// ===========================================================
private Camera sapCamera; // моя камера
private ITexture mTexture; // мой файл с текстурой
private ITextureRegion mFaceTextureRegion; // определенный прямоугольный кусок моей текстуры
// ===========================================================
// Methods for/from SuperClass/Interfaces
// ===========================================================
//@Override
// инициализируем движок
public EngineOptions onCreateEngineOptions()
{
// инициализируем камеру
sapCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
// инициализируем движок. Его параметры:
// Первый (true) - полноэкранный режим
// Второй - ландшафтная (горизонтальная) ориентация экрана.
// Третий FillResolutionPolicy() - отличная краткая статья здесь http://flexymind.com/blog/?p=253
// Четвертый - наша камера
EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED,
new FillResolutionPolicy(), sapCamera);
return engineOptions;
}
// загружаем ресурсы. Картинки\звуки\музыку и т.п.
@Override
protected void onCreateResources()
{
// без конструкции try-catch почему-то не работает, либо я не смог пока правильно сделать (23/09/12)
// И вообще я с потоками пока что на "вы" - потому пока непросто разобраться.
try {
this.mTexture = new BitmapTexture(this.getTextureManager(), new IInputStreamOpener() {
//@Override
public InputStream open() throws IOException {
return getAssets().open("gfx/ship.png");
}
});
// загрузка текстуры из файла
this.mTexture.load();
// выделение куска текстуры (региона) для нас. в данном случа вся текстура идет в регион
this.mFaceTextureRegion = TextureRegionFactory.extractFromTexture(this.mTexture);
}
// Если текстура не загружена, в дебаг-лист попалет сообщение, содержащее номер ошибки ввода-вывода
catch (IOException e) {
Debug.e(e);
}
}
// создаем сцену
@Override
protected Scene onCreateScene()
{
Scene scene = new Scene();
// заливаем бэкграунд одним цветом
scene.setBackground(new Background(0.9804f, 0.0f, 0.5f));
// создаем спрайт и пихаем его в сцену
final Sprite face = new Sprite(100, 100, this.mFaceTextureRegion, this.getVertexBufferObjectManager() );
scene.attachChild(face);
return scene;
}
}
воскресенье, 23 сентября 2012 г.
HelloWorld + просто спрайт на GLES2.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий