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

看完了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;
		}
	};
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值