首页 > 代码库 > 启动者(个人翻译,还请指教)类和配置
启动者(个人翻译,还请指教)类和配置
本文章翻译自libGDX官方wiki,,转载请注明出处:http://blog.csdn.net/kent_todo/article/details/37942047libGDX官方网址:http://libgdx.badlogicgames.com/libGDX源码:https://github.com/libgdx/libgdx
libGDX支持的平台:
对于每一个目标平台,都必须有一个启动者类。这个类实例化了一个后期指定的Application实现,并且实例化了一个ApplicationListener,它实现了应用的逻辑。启动者类是与平台相关的,让我们来看一看怎么样来实例化和配置他们。
这篇文章假设你已经掌握了程序创建,运行和调试,并且已经导入了核心、桌面、Android和HTML5的工程到Eclipse当中。
关于libGDX程序的创建、运行和调试会在以后的博文中进行介绍,或者直接到官网查看相关文档。
Desktop(LWJGL) 桌面游戏
lwjgl简介:
打开在my-gdx-game中的Main.java类可以看到如下内容:
package com.me.mygdxgame; import com.badlogic.gdx.backends.lwjgl.LwjglApplication; import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; public class Main { public static void main(String[] args) { LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration(); cfg.title = "my-gdx-game"; cfg.useGL30 = false; cfg.width = 480; cfg.height = 320; new LwjglApplication(new MyGdxGame(), cfg); } }
首先,一个LwjglApplicationConfigration被实例化。这儿类指定了多种组态设定,比如初始化的屏幕分辨率,是否使用OpenGL ES 1.X或者2.0和更多。
当这个配置对象被设置之后,一个LwjglApplication被实例化。MyGdxGame()类是实现了游戏逻辑的ApplicationListener;
这样一个窗口就被创建出来了,并且ApplicationListener会被像在有关生命周期的介绍中那样被调用。
Android(安卓)
Android应用不使用main(0方法作为进入点,但是它需要一个Activity作为起始点。打开my-gdx-game-android中的MainAcitivity.java类会看到:
package com.me.mygdxgame; import android.os.Bundle; import com.badlogic.gdx.backends.android.AndroidApplication; import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; public class MainActivity extends AndroidApplication { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration(); cfg.useGL20 = false; initialize(new MyGdxGame(), cfg); } }
游戏的主要的起始点是Acitivity中的onCreate()函数。注意MainAcitivity继承自AndroidApplication,而AndroidApplication又继承自Acitivity.跟桌面程序中一样,一个配置对象将被实例化(AndroidApplicationConfiguration)。只要配置完成,AndroidApplication.initalize()方法就会被调用,传递了一个ApplicationListener(即MyGdxGame)和配置参数对象。
Android应用程序能够有不同的Acitivity。但是libGDX游戏应该只有一个Acitivity。游戏的不同场景在libGDX内部实现,跟分开的Acitivity是不一样的。这样做的原因是因为创建一个新的Acitivity也意味着创建了一个县的OpenGL上下文,这是耗时的,并且意味着所有的图像资源都要被重新加载。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。