看完了AndEngine文档中提供的Example中的Simple里面的例子,简单的防着写了一个Demo:
public class Simple extends SimpleBaseGameActivity {
private static final int CAMERA_WIDTH = 720;
private static final int CAMERA_HEIGHT = 480;
private TextureRegion mTexture;
@Override
public EngineOptions onCreateEngineOptions() {
Camera camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
return new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED,
new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera);
}
@Override
protected void onCreateResources() {
BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");
try {
BitmapTexture bitmapTexture = new BitmapTexture(
getTextureManager(), new IInputStreamOpener() {
@Override
public InputStream open() throws IOException {
return getAssets().open("gfx/face_box.png");
}
});
bitmapTexture.load();
mTexture = TextureRegionFactory.extractFromTexture(bitmapTexture);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected Scene onCreateScene() {
this.mEngine.registerUpdateHandler(new FPSLogger());
final Scene scene = new Scene();
scene.setBackground(new Background(org.andengine.util.color.Color.WHITE));
// 绘制直线
Line line = new Line(0, 0, 350, 200, getVertexBufferObjectManager());
line.setColor(Color.BLACK);
scene.attachChild(line);
// 绘制矩形
Rectangle rectangle = new Rectangle(50, 50, 200, 200,
getVertexBufferObjectManager());
rectangle.setColor(Color.GREEN);
scene.attachChild(rectangle);
// 绘制精灵
Sprite sprite = new Sprite(200, 200, mTexture,
getVertexBufferObjectManager());
scene.attachChild(sprite);
// 场景增加touch事件
scene.setOnSceneTouchListener(mIOnSceneTouchListener);
// 缩放精灵
final Sprite faceSprite1 = new Sprite(200, 140, this.mTexture,
this.getVertexBufferObjectManager());
faceSprite1.setScale(3);
scene.attachChild(faceSprite1);
// 旋转精灵
final Sprite faceSprite2 = new Sprite(300, 300, mTexture,
getVertexBufferObjectManager());
faceSprite2.setRotation(75);
scene.attachChild(faceSprite2);
// 移动精灵
final Sprite faceSprite3 = new Sprite(600, 300, mTexture,
getVertexBufferObjectManager()) {
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
float pTouchAreaLocalX, float pTouchAreaLocalY) {
setPosition(pSceneTouchEvent.getX(), pSceneTouchEvent.getY());
return true;
}
};
faceSprite3.setRotation(90);
scene.attachChild(faceSprite3);
scene.registerTouchArea(faceSprite3);
scene.setTouchAreaBindingOnActionDownEnabled(true);
return scene;
}
private final IOnSceneTouchListener mIOnSceneTouchListener = new IOnSceneTouchListener() {
@Override
public boolean onSceneTouchEvent(Scene pScene,
TouchEvent pSceneTouchEvent) {
// EngineLock engineLock = mEngine.getEngineLock();
// engineLock.lock();
// toastOnUIThread("Touch the scene", Toast.LENGTH_SHORT);
return true;
}
};
}