c2d libgdx 封装

我们来看下c2d的封装


关键类 Engine:


这个类作为继承ApplicationAdapter 实现了 public abstract class ApplicationAdapter implements ApplicationListener 作为我们的android入口


Engine 类在create 里面创建了需要的基础实例。


渲染形状 shapeRenderer
setupTweenEngine 设置动画引擎
setupCamera 设置投影
assetManager 资源管理
aliasResourceManager  资源简写,快速操作
soundManager 声音管理
musicManager 音乐管理
languagesManager 语言管理
spriteBatch 画布
defaultFont 字体
preferences 配置文件


if(null!=engineCallback){
engineCallback.preLoad(Gdx.graphics.getDesktopDisplayMode(),engineConfig.assets);
}
预加载机制。
默认会加载assert/data下的所有资源


setupLoading 显示加载进程


------------------


一个简单demo:


public class ActionTint extends Engine {
@Override
protected EngineDrive onSetupEngineDrive() {
return new EngineX();
}
@Override
public void dispose () {
super.dispose();
}

private class EngineX implements EngineDrive{
@Override
public void onResourcesRegister(AliasResourceManager<String> reg) {
reg.textureAtlas("Anim",  "data/animationsprite/turkey.atlas");   // 放置重定资源
}
@Override
public void dispose() {}
@Override
public EngineOptions onSetupEngine() {
final EngineOptions opt = new EngineOptions(new String[]{
"data/animationsprite/"     
},800,480);   // 设置系统参数,加载的资源路径
return opt;
}


@Override
public void onLoadedResourcesCompleted() {
Engine.setMainScene(new MainScene()); // 设置主屏
}
}
private static class MainScene extends C2dStage implements Scene{
final AdvanceSpriteImage actor;
public MainScene(){
actor = new AdvanceSpriteImage(new AnimationSprite(0.05f, Engine.resource("Anim",TextureAtlas.class),"fly"));
actor.setPosition(200, 100);
actor.addAction(Actions.forever(
Actions.sequence(
Actions.color(new Color(Color.BLUE), 1),
Actions.color(new Color(Color.YELLOW), 1)
)
));
this.addActor(actor);
}
@Override
public void render(float delta) {
this.act(delta);
this.draw();
}
@Override
public InputProcessor getInputProcessor() {
return null;
}
@Override
public void update(float delta) {
}
@Override
public void hide() {
}
@Override
public void show() {
}
}
}

你可能感兴趣的:(android,libgdx,游戏引擎开发)