想做一些android游戏,单凭android sdk估计很难实现一些复杂的游戏,为了方便入门,得先找些游戏引擎来学习一下,上网搜搜,看一些android 游戏引擎的介绍,权衡一下学习难度及提供的资料及帮助情况,决定先从rokon入手,看网上的评价如下:
"rokon是一款Android 2D游戏引擎,基于OpenGL ES技术开发,物理引擎为Box2D,因此能够实现一些较为复杂的物理效果,该项目最新版本为 2.0.3 (09/07/10)。总体来说,此引擎最大的优点在于其开发文档相当之完备,并且项目作者对反馈Bug的修正非常之神速,所以该框架的使用在目前也最为 广泛,有人干脆将它称为Cocos2d-iPhone引擎的Android版(业务逻辑和编码风格上也确实很像)"
配置很简单,将库下载之后引入eclipse就可以,我习惯在工程下面建个lib目录,放第三方库,释放rokon压缩包之后如下图:
上网搜索一下rokon的例子,看到csdn上一位兄弟的文章,大概有几个要点:
1. 不继承Activity,而是继承RokonActivity。
2. 引擎创建成功时,会引用onLoadComplete,估计程序的主逻辑要从这里铺开。
如在这里创建场景类的对象,并且通过setScene加载场景。或者在这里处理游戏的背景(csdn的兄弟翻译为纹理)。
3. 场景类必须继承Scene,需要重写onGameLoop、onPause、onResume、onReady四个方法,主要是场景控制。
下面是仿照csdn兄弟测试的例子:
package net.gibbets;
import com.stickycoding.rokon.DrawPriority;
import com.stickycoding.rokon.RokonActivity;
import com.stickycoding.rokon.Scene;
import com.stickycoding.rokon.Texture;
import com.stickycoding.rokon.TextureAtlas;
import com.stickycoding.rokon.background.FixedBackground;
public class Gibbets extends RokonActivity {
public static final float GAME_WIDTH = 480f;
public static final float GAME_HEIGHT = 320f;
private GameScene scene;
public void onCreate() {
debugMode();
forceFullscreen();
forceLandscape();
setGameSize(GAME_WIDTH, GAME_HEIGHT);
setDrawPriority(DrawPriority.PRIORITY_VBO);
setGraphicsPath("textures/");
createEngine();
}
public void onLoadComplete() {
Textures.load();
setScene(scene = new GameScene());
}
}
class Textures {
public static TextureAtlas atlas;
public static Texture background;
public static void load() {
atlas = new TextureAtlas();
atlas.insert(background = new Texture("background.png"));
atlas.complete();
}
}
class GameScene extends Scene {
private FixedBackground background;
public GameScene() {
super();
setBackground(background = new FixedBackground(Textures.background));
}
@Override
public void onGameLoop() {
}
@Override
public void onPause() {
}
@Override
public void onResume() {
}
@Override
public void onReady() {
}
}
后续准备自己移植个Flash游戏至android~~
转载于:https://blog.51cto.com/keke1983/561444