AndEngine-----Example中Simple例子的总结

来源:互联网 发布:js split 正则 编辑:程序博客网 时间:2024/05/18 03:33

看完了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;@Overridepublic 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);}@Overrideprotected void onCreateResources() {BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");try {BitmapTexture bitmapTexture = new BitmapTexture(getTextureManager(), new IInputStreamOpener() {@Overridepublic InputStream open() throws IOException {return getAssets().open("gfx/face_box.png");}});bitmapTexture.load();mTexture = TextureRegionFactory.extractFromTexture(bitmapTexture);} catch (IOException e) {e.printStackTrace();}}@Overrideprotected 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()) {@Overridepublic 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() {@Overridepublic boolean onSceneTouchEvent(Scene pScene,TouchEvent pSceneTouchEvent) {// EngineLock engineLock = mEngine.getEngineLock();// engineLock.lock();// toastOnUIThread("Touch the scene", Toast.LENGTH_SHORT);return true;}};}