LGame學習筆記2-----使用Sprite類繪製人物

首先說下選用的版本,是Github上Android版OpenGLES版本。說下理由,由於LGame引擎開發跨越時間長,且只有作者一人在做,所以版本間的改動很大,舊版有很多不足和bug處,所以不考慮。然後就是Github上Android的Canvas版,我本想用這個的,因爲簡單,但是實際用效率太差,在手機上fps只有10左右,只好放棄,改用最新的OpenGLES版。

一:LGame引擎啓動配置

據作者說只要在AndroidManifest里加上:

android:configChanges="orientation|keyboardHidden"
即可由引擎自由切換橫豎屏,但我實際測試,如果不強制橫屏則會報錯,所以加上了

android:screenOrientation="landscape"
索性遊戲一般只有橫屏或豎屏,橫豎屏切換的初學者基本不用考慮。

LGame是引擎的啓動類,繼承自Activity,用戶需要繼承LGame來使用該引擎。如下:

public class MainActivity extends LGame {

	@Override
	public void onMain() {
		
		LTexture.ALL_LINEAR = true;
		LSetting setting = new LSetting();
		setting.width = 800;  //設定屏幕畫面的寬高
		setting.height = 600;
		setting.fps = 60;
		setting.landscape = true; //橫屏
		setting.showFPS = true;   //顯示FPS
		register(setting, MyScreen.class);  //註冊設定,啓動MyScreen
		
	}

	@Override
	public void onGameResumed() {

	}

	@Override
	public void onGamePaused() {

	}

}


二:實現Screen
Screen可以理解爲遊戲的畫面,不同畫面間可以切換。遊戲繪製與邏輯一般在這裏完成。我們的MyScreen可以繼承Screen。

三:Sprite

Sprite爲精靈,寬泛的理解,可以是各類人物,物品等需要在遊戲裏展現的。

public class MyScreen extends Screen {

	
	private Sprite gy;  //人物
	
	LTimer timer = new LTimer(LSystem.SECOND);  //初始化一個一秒的定時器
	
	public MyScreen(){
		gy = new Sprite("assets/guanyu.png", 100, 100, 32, 32); //初始化精靈,參數分別爲圖片路徑,座標及裁剪的寬高
		gy.setRunning(true);
		add(gy); //加入到Screen中
	}
	
	
	@Override
	public void draw(GLEx g) {
		
		gy.createUI(g);  //繪製

		
	}

	@Override
	public void alter(LTimerContext timer) {
		if (this.timer.action(timer.getTimeSinceLastUpdate())) {  //一秒更新一次精靈狀態
			gy.update(150);
		}
		
	}

	@Override
	public void touchDown(LTouch e) {
		gy.move_right(); //向右移動一次
	}

	@Override
	public void touchUp(LTouch e) {
		// TODO Auto-generated method stub

	}

	@Override
	public void touchMove(LTouch e) {
		// TODO Auto-generated method stub

	}

	@Override
	public void touchDrag(LTouch e) {
		// TODO Auto-generated method stub

	}


}

效果:


右側是使用的素材。



發佈了62 篇原創文章 · 獲贊 23 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章