AndEngine游戏编程学习(一)

    最近开始想自己做Android游戏,大半年没接触过编程了,以前接触过libgdx和AndEngine引擎做过点小东西,感觉AndEngine封装的更加完善,用起来跟容易,就决定采用它来做,加快游戏开发进度,很久不见发现AndEngine的作者更新很勤快,代码托管也换了地方,好多东西变了,要重新拾起要花点心思,于是决定开个博客来记录我的学习历程。

  既然决定要用AndEngine引擎开发 首先要把引擎源码和实例下载下来。

 (一) 下载AndEngine库和AndEngineExample

             以前AndEngine托管在   http://code.google.com/p/andengine/  上,进去一看发现作者换托管平台了 ,现在源码托管在 http://github.com/nicolasgramlich/AndEngine

上,下载时候有发现了点问题,不能直接下载。于是百度 google弄了半天,发现要用到github工具下载,于是下载安装之,和以前用的SVN有类似的地方,选好一个文件夹右键打开程序,发现是一个输命令行的界面。下载时还要注意的是首先要在网页上先Fork想要下载的文件才能使用git clone命令下载,注意下图右上角。



要运行起ANdEngine的示例要先后插起10个文件,包括源码 ,示例程序和可选的库文件。慢慢下吧。

(二) 运行 AndEngine 示例
把下载的10个文件统统导入workspace ,基本就可以把示例跑起来了。如果没跑起来或报错,一般是版本问题 要确保你的开发工具是ADT - 17或更高。


好了,先慢慢看示例和代码吧,通常情况模拟器跑不起来,你得创建模拟器时要选择 US HOST GPU 。因为最新的AndEngine用的是 GLES2.0,模拟器不支持,但选了这个选项的模拟器可以使用。

(三)按照惯例,写个HelloWorld
package com.zm.game.helloworld;

import java.util.Random;

import org.andengine.engine.camera.Camera;
import org.andengine.engine.options.EngineOptions;
import org.andengine.engine.options.ScreenOrientation;
import org.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.andengine.entity.primitive.Line;
import org.andengine.entity.scene.Scene;
import org.andengine.entity.scene.background.Background;
import org.andengine.entity.util.FPSLogger;
import org.andengine.opengl.vbo.VertexBufferObjectManager;
import org.andengine.ui.activity.SimpleBaseGameActivity;

public class DrawLine extends SimpleBaseGameActivity {

	private int CAMERA_WIDTH = 480;
	private int CAMERA_HEIGHT = 800;

	@Override
	public EngineOptions onCreateEngineOptions() {
		final Camera mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
		return new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED,
				new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), mCamera);
	}

	@Override
	protected void onCreateResources() {
		// TODO Auto-generated method stub

	}

	@Override
	protected Scene onCreateScene() {
		this.mEngine.registerUpdateHandler(new FPSLogger());

		final Scene scene = new Scene();
		scene.setBackground(new Background(0.09804f, 0.6274f, 0.8784f));

		final VertexBufferObjectManager vertexBufferObjectManager = this
				.getVertexBufferObjectManager();
		Random random = new Random();

		for (int i = 0; i < 100; i++) {
			final float x1 = random.nextFloat() * CAMERA_WIDTH;
			final float x2 = random.nextFloat() * CAMERA_WIDTH;
			final float y1 = random.nextFloat() * CAMERA_HEIGHT;
			final float y2 = random.nextFloat() * CAMERA_HEIGHT;
			final float lineWidth = random.nextFloat() * 5;

			final Line line = new Line(x1, y1, x2, y2, lineWidth,
					vertexBufferObjectManager);

			line.setColor(random.nextFloat(), random.nextFloat(),
					random.nextFloat());

			scene.attachChild(line);
		}
		return scene;
	}

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值