Android游戏开发框架LGame-Android-0 2 5R发布

               

源码及类库下载地址如下:http://loon-simple.googlecode.com/files/LGame-Android-0.2.5R.rar

基本构成如下图:

00

LGame-Android简称LA,是一款能够运行于Android系统及其兼容衍生系统的2D游戏快速开发框架,可以(理论上)运行于Android1.1及以上版本环境中。本次发布的LGame-Android-0.2.5R版,经由LGame-Simple-0.2.5改进而成,所以也可以视为LGame-0.2.5到0.3间的过渡版本。就实际用途而言,目前它主要为收集LGame-0.3版的用户意见而发布,而0.3版也将成为LGame框架的主要分支之一。

LGame-Android版基本架构与PC版LGame高度一致,只是细微处有所区别,这一差距会随着版本的更新而逐渐缩小。当然,此框架没有发展为Qt型框架的意图,也不主张单纯为封装API而牺牲系统平台特性,所以将始终保持一定的本地函数存在。


首先,LGame在Android中的使用非常之简洁,只要引入相关类库即可运行,甚至不需要配置XML(假如您愿意的话,也可以)。

00

PS:如果您使用LGame进行游戏开发的话,甚至连admob的xml广告设置也可以省略掉,只需在LGame函数中配置广告帐号,关键词,显示位置,刷新时间等参数即可使用。

其次,一个最简单的LGame-Android应用由以下要素构成:

1、继承自LGameActivity的Activity

package org.loon.test;import org.loon.framework.android.game.LGameActivity;import android.os.Bundle;public class Main extends LGameActivity { public void onCreate(Bundle icicle) {         //此参数为true时游戏横屏表示,否则竖屏表示。  //另外initialization时也可以设置Admob广告的各项参数,避免xml文件的繁琐配置,  //此部分会在未来几天内补充。  this.initialization(icicle, false);  //游戏主窗体  this.setScreen(new TestScreen());  //刷新率  this.setFPS(30);  //是否显示刷新率  this.setShowFPS(true);  //是否显示logo  this.setShowLogo(false);  //显示窗体                this.showScreen(); }}

2、创建Screen

package org.loon.test;import org.loon.framework.android.game.core.graphics.LGraphics;import org.loon.framework.android.game.core.graphics.Screen;import android.view.KeyEvent;import android.view.MotionEvent;public class TestScreen extends Screen { public void draw(LGraphics g) { } public boolean onKeyDown(int keyCode, KeyEvent e) {  return false; } public boolean onKeyUp(int keyCode, KeyEvent e) {  return false; } public boolean onTouchDown(MotionEvent e) {  return false; } public boolean onTouchMove(MotionEvent e) {  return false; } public boolean onTouchUp(MotionEvent e) {  return false; }}


至此,对任何使用过LGame PC版的朋友而言,剩下的操作就轻车熟路了。(会在未来几天内陆续补充内容)

另外,出于Android效率考虑,又新增加了一个简单的多线程Screen类,即ThreadScreen。此类继承自Screen,用以分离开发中的具体业务与图像刷新。

PS:此Screen中线程会在切换Screen或者程序关闭时自动注销。

有线程的Screen:

package org.loon.test;import org.loon.framework.android.game.core.graphics.LGraphics;import org.loon.framework.android.game.core.graphics.ThreadScreen;import android.view.KeyEvent;import android.view.MotionEvent;public class TestThreadScreen extends ThreadScreen { public void drawScreen(LGraphics g) {             }        //gameLoop始终处于一个活动的线程之内,该线程刷新速度可由setSynchroFPS()函数控制。 public void gameLoop() {  //在ThreadScreen中,必须使用repaint才能令图像刷新生效 } public boolean onKeyDown(int keyCode, KeyEvent e) {  return false; } public boolean onKeyUp(int keyCode, KeyEvent e) {  return false; } public boolean onTouchDown(MotionEvent e) {  return false; } public boolean onTouchMove(MotionEvent e) {  return false; } public boolean onTouchUp(MotionEvent e) {  return false; }}


与PC版的少许分歧:


在Android版中,以LGraphics替代Graphics2D(在PC版0.2.5R中也使用此类,API与Graphics2D高度一致,并有所扩展),LImage代替Image及BufferedImage(Bitmap封装),LFont代替Font。另外,GraphicsUtils中的createImage系列函数在Android版中被归还给了LImage,getFont系列函数归还给了LFont,其它保持不变。

Android版的部分取消:


PShadowEffect类,LMagnifier类,LPlayer类:此三类在PC版中采用像素渲染完成,而同样的像素绘图方式,在Android下速度实在悲剧,留待0.3版中改用OpenES实现……

PC版media包全体:此部分在LGame-Android版中直接封装MediaPlayer,提供有AssetsSound及AssetsSoundManager。(事实上,由于MediaPlayer对数据流不友好,故此LGame-Android中规定音频文件必须至于assets文件夹下,相关类以“Assets”开始以示区别)


一些设定上的细节问题:


对于大多数固定横纵版的游戏而言,我们都需要在AndroidManifest.xml中activity标签内配置android:configChanges="orientation|keyboardHidden"参数,以防止屏幕方向改变时重启游戏和弹出键盘。另外,无论进行任何需要读写权限的操作之前,都请确保AndroidManifest.xml内已配置有相关的操作权限,否则操作无法生效。(譬如网络连接,须注明:  <uses-permission android:name="android.permission.INTERNET"/>)。具体请参阅相关文档,此处不再赘述。

最后,为了大家调试方便,随LGame-Android一起附带的还有PC版的LGame-0.2.5R。

源码及类库下载地址如下:http://loon-simple.googlecode.com/files/LGame-Android-0.2.5R.rar


PS:此博文尚未结束,会经由五天左右陆续补完。

————————————————

小弟今天杯具了,北京刚刚暴雨,走晚+没带伞|||。一时大意,没能提前写完此文,只好慢慢更新,也算是精益求精吧……有耐心的同志可以自己边测验类库边和小弟留言讨论,预计五天左右补充完它,总之没跳票……

另外,效率问题大家不用担心,0.3版核心部分已经替换为OpenGL ES了,预计9-10月期间发布。


           

猜你喜欢

转载自blog.csdn.net/qq_44934536/article/details/89477067
今日推荐