
AndEngine是Android平台的开源的基于2D OpenGL的游戏引擎。其内置了Box2D,可以很方便的在程序中使用各种物理效果。其实,Android的游戏引擎也有其它的,但是AndEngine作为我接触的第一个引擎,且网上说它的游戏动作扩展功能比较多、全面,就拿它做学习了。 且不说它怎样,…

AndEngine是Android平台的开源的基于2D OpenGL的游戏引擎。其内置了Box2D,可以很方便的在程序中使用各种物理效果。其实,Android的游戏引擎也有其它的,但是AndEngine作为我接触的第一个引擎,且网上说它的游戏动作扩展功能比较多、全面,就拿它做学习了。
且不说它怎样,再说愚人也是刚学习。先上来个HelloWorld再说吧。有一点比较痛苦的是,这东西没有文档,所以写点笔记啥的备忘呗。
import org.anddev.andengine.engine.Engine;
import org.anddev.andengine.engine.camera.Camera;
import org.anddev.andengine.engine.options.EngineOptions;
import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation;
import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.anddev.andengine.entity.scene.Scene;
import org.anddev.andengine.entity.scene.background.ColorBackground;
import org.anddev.andengine.entity.text.ChangeableText;
import org.anddev.andengine.opengl.font.Font;
import org.anddev.andengine.opengl.texture.Texture;
import org.anddev.andengine.opengl.texture.TextureOptions;
import org.anddev.andengine.ui.activity.BaseGameActivity;
import android.graphics.Color;
import android.graphics.Typeface;
public class MainActivity extends BaseGameActivity implements Base {
private Camera canmera;
private Texture myTexture;
private Font myFont;
@Override
public void onLoadComplete() {
}
@Override
public Engine onLoadEngine() {
//构建摄像机
this.canmera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
// 构建引擎,屏幕为竖屏,按比例拉伸
return new Engine(new EngineOptions(true, ScreenOrientation.PORTRAIT,
new RatioResolutionPolicy(CAMERA_WIDTH,CAMERA_HEIGHT), canmera));
}
@Override
public void onLoadResources(){
this.myTexture = new Texture(256,256,TextureOptions.BILINEAR_PREMULTIPLYALPHA);
this.myFont = new Font(this.myTexture, Typeface.create(
Typeface.DEFAULT, Typeface.BOLD), 32, true, Color.BLACK);
// 注入相关纹理及字体
this.mEngine.getTextureManager().loadTexture(myTexture);
this.mEngine.getFontManager().loadFont(myFont);
}
@Override
public Scene onLoadScene() {
// 构建场景,允许的最大Layer数量为1
final Scene myScene = new Scene(1);
myScene.setBackground(new ColorBackground(1.0f, 1.0f, 1.0f));
final ChangeableText myText = new ChangeableText(5, 5, this.myFont,
"Hello World!", 50);
// 将ChangeableText注入场景
myScene.getTopLayer().addEntity(myText);
return myScene;
}
}
其中四个必须被重载函数的启动顺序如下:
onLoadEngine->onLoadResources->onLoadScene->onLoadComplete
扫一扫在手机打开
评论
已有0条评论
0/150
提交
热门评论
相关推荐