第一个demo

1:
 关于配置网上已经分析的很多了,那么我就使用源码来进行分析了。由于也是一步步去分析,因此肯定会有一些错误,欢迎支持!!
 
 第一个程序:(具体找附件)


MainActivity extends AndroidApplication 
FirstGame implements ApplicationListener


可以看到两个类:
MainActivity 应用入口
FirstGame 实际操作对象。
关联:
initialize(new FirstGame(), false);
那么我们来分析initialize(new FirstGame(), false);接口:
AndroidApplication 里面的initialize 里面有
graphics = new AndroidGraphics(this, config, config.resolutionStrategy == null ? new FillResolutionStrategy()
: config.resolutionStrategy);
这个去查看发现是
AndroidGraphics implements Graphics, Renderer
这里则可以发现继承了Renderer ,在构造里面有
view = createGLSurfaceView(application, resolutionStrategy);
我们知道GLSurfaceView 是android里面开发游戏使用opengl的封装。
使用了view.setRenderer(this);将渲染设置为自身。
onDrawFrame 函数为每一帧调用的方法。
查看下
if (lrunning) {
synchronized (app.getRunnables()) {
app.getExecutedRunnables().clear();
app.getExecutedRunnables().addAll(app.getRunnables());
app.getRunnables().clear();
}


for (int i = 0; i < app.getExecutedRunnables().size; i++) {
try {
app.getExecutedRunnables().get(i).run();
} catch (Throwable t) {
t.printStackTrace();
}
}
((AndroidInput)app.getInput()).processEvents();
app.getApplicationListener().render();
}
这里我么来看
((AndroidInput)app.getInput()).processEvents();
app.getApplicationListener().render();
处理输入操作,调用ApplicationListener进行渲染。
这里的app.getApplicationListener() 可以看到便是
MainActivity 里的 initialize(new FirstGame(), false);第一个参数。好了我们分析FirstGame了。
FirstGame implements ApplicationListener
那么关键的我们也看到了,我们需要实现render接口。删除多余的:

public class FirstGame implements ApplicationListener {
// 绘图用的SpriteBatch
private SpriteBatch batch;
@Override
public void render() {
Gdx.gl.glClearColor(0.5f, 0.5f, 0.5f, 1f);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); // 清屏
batch.begin();
// 添加代码
batch.end();
}
我们这里设置了清除色,清除。

现在来写下整个的流程:
android架构启动MainActivity 继承AndroidApplication,里面通过initialize函数实现GLSurfaceView 然后进行渲染,调用添加进来的ApplicationListener的render函数
实现渲染。
如此第一节则分析完成,讲的零散,就凑合看吧,不会写详细的文档,见谅!

你可能感兴趣的:(android,源码分析,libgdx)