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;
import org.andengine.util.color.Color;
import android.util.DisplayMetrics;
/**
* 画直线
*/
public class LineActivity extends SimpleBaseGameActivity
{
private static int winWidth = 854;
private static int winHeight = 480;
/**
* 设置屏幕大小
*/
private void setScreenDisplay()
{
DisplayMetrics outMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
winWidth = outMetrics.widthPixels;
winHeight = outMetrics.heightPixels;
System.out.println("winWidth:"+winWidth+"winHeight:"+winHeight);
}
/**
* 游戏引擎被activity加载时调用(第一加载方法)
*/
@Override
public EngineOptions onCreateEngineOptions()
{
setScreenDisplay();
/**
* 创建窗体信息
* 一是用以调节屏幕的显示区域,二是利用HUD类实际绘制游戏屏幕于手机之上。
* pX 当前窗体初始X坐标
* pY 当前窗体初始Y坐标
* pWidth 当前窗体宽度, 和高度比对后自适应屏幕
* pHeight 当前窗体高度 , 和宽度比对后自适应屏幕
*/
Camera camera = new Camera(0, 0, winWidth, winHeight);
/**
* 返回创建窗体对象
* EngineOptions 窗体对象详细信息类
* pFullScreen 是否全屏
* pScreenOrientation 显示模式(横屏/竖屏)
* pResolutionPolicy 比对宽高
* pCamera 创建窗体信息对象
*/
EngineOptions engineOptions = new EngineOptions(
true,
ScreenOrientation.LANDSCAPE_FIXED,
new RatioResolutionPolicy(winWidth, winHeight),
camera);
return engineOptions;
}
/**
* 需要加载资源时调用(第二加载方法)
*/
@Override
protected void onCreateResources()
{
}
/**
* 要显示场景是调用(第三加载方法)
*/
@Override
protected Scene onCreateScene()
{
// 注册FPS监听
this.mEngine.registerUpdateHandler(new FPSLogger());
/*
* 场景容器,作用类似于LGame中的Screen,
* 能够将某一特定场景作为游戏模块进行调用
* ,我们可以利用它来切换当前游戏的画面与触摸屏监听,
* 切换方法是利用Engine.setScene。
*/
Scene scene = new Scene();
scene.setBackground(new Background(new Color(0, 255, 0)));
//顶点对象管理器(顶点管理器)
VertexBufferObjectManager pVertexBufferObjectManager = new VertexBufferObjectManager();
//创建一条直线
Line line = new Line(10, 10, 300, 300,20, pVertexBufferObjectManager);
line.setColor(Color.RED);
//将直线添加到场景
scene.attachChild(line);
return scene;
}
}