libgdx:[18]桌面系统运行示例程序
此篇介绍如何在桌面系统运行libgdx给出的示例程序。
工具/原料
libgdx
windows系统
Running the demo application on a desktop 在桌面系统中运行示例程序
1、在桌面项目中运行实例程序桌面项目的starterclass是一个叫做main.ja箪滹埘麽va的类。如下所示:package com.packtpub.libgdx.demo;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 = "demo";cfg.useGL20 = false;cfg.width = 480;cfg.height = 320;new LwjglApplication(new MyDemo(), cfg);}}
![libgdx:[18]桌面系统运行示例程序](https://exp-picture.cdn.bcebos.com/4d3d2ab33c4133bafeac39ce6a37c97623bc2f40.jpg)
2、在前面的代码清单,你看到的main类,纯Java类没有实现任何一个接口或从另一个类继承。相反,一个新的lwjglapplication的实例被创建。这个类提供了一对可重载的构造函数供选择。在这里,我们传递一个新mydemo类的实例作为第一个参数。任选地,该实例lwjglapplicationconfiguration类可作为第二个参数传递。配置类允许你为桌面程序设置每一个可以配置的参数。在这种情况下,窗口标题设置为demo窗口的宽度和高度320像素设置为480。这是所有你需要编写和配置一个桌面开始类。
![libgdx:[18]桌面系统运行示例程序](https://exp-picture.cdn.bcebos.com/23fd63c5cf672b5fe0ab3f253314f4d0b4032740.jpg)
3、现在让我们试着运行该应用程序。下面启动程序,右键单击Eclipse项目资源管理器demo桌面项目然后导航到runas--javaapplication.当你第一次这么做Eclipse可能会要求你选择主类。很简单选择主类,并检查正确的软件包的名 (com.packtpub.libgdx.demo)显示在它旁边。
![libgdx:[18]桌面系统运行示例程序](https://exp-picture.cdn.bcebos.com/c99358fe474ec2830d52015cbe4f50b8b53e1c40.jpg)
4、桌面应用程序现在应该已经在您的计算机上运行。如果你使用Windows,您应该会看到一个窗口。
![libgdx:[18]桌面系统运行示例程序](https://exp-picture.cdn.bcebos.com/340e4eb8b43ea8db13a7c081189c2cf7deb21640.jpg)
Running the demo application on Android 在android系统运行示例程序
1、运行android实例程序android 程序的开始类是叫做MainActivity.java的类。下面是demo-android 中的MainActivity.java 的代码pack锾攒揉敫age com.packtpub.libgdx.demo;import android.os.Bundle;import com.badlogic.gdx.backends.android.AndroidApplication;import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;public class MainActivity extends AndroidApplication {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);AndroidApplicationConfiguration cfg =new AndroidApplicationConfiguration();cfg.useGL20 = false;initialize(new MyDemo(), cfg);}}
![libgdx:[18]桌面系统运行示例程序](https://exp-picture.cdn.bcebos.com/92dd32f7dfb2dc1984c161a895def4dca1391040.jpg)
2、在前面的代码列表,你可以看到mainactivity类继承自androidapplication类。这就是libgdx怎样封装任务的例如创建一个所谓的 actibity 活动 ,注册处理程序来处理触摸输入,读取传感器的数据,以及更多。下面是就是你做的 创造一个实现的applicationlistener接口的类的实例。在这里,它是mydemo类的一个实例。mydemo的实例和androidapplicationconfiguration作为参数传递给initialize()方法。配置设置为不需要OpenGLES2在Android设备的支持。如果你在Android硬件统计的最新发展感兴趣,请务必查看官方Android开发者网站:http://developer.android.com/about/dashboards/index.html#OpenGL.
3、下面的截屏图片是2013年11月网站统计的OpenGL 数据。
![libgdx:[18]桌面系统运行示例程序](https://exp-picture.cdn.bcebos.com/f59dbe39131fceec823453c679c4ec9958430b40.jpg)
4、在写这本书的时候,在今天的Android设备的百分之90。支持gles2所以当gles2可用于Android?一个更好的问题可你是否打算在你的应用程序使用的着色器shaders。如果是这样的话,选择gles2。在其他情况下,会有除了能够使用别的没有真正的帮助非二次幂纹理(也被称为任意大小的纹理贴图NPOT);不被要求宽度或高度按照2^N格式来定义,如32×32,512×512,128×1024。NPOT纹理都不能保证支持所有设备。例如,NexusOne忽略NPOT纹理。同时,他们可能会导致硬件性能的损坏,所以最好是避免使用此功能。在4章,收集资源,GatheringResources,中 你将学到的技术称为TextureAtlas.这将允许你使用任意大小的纹理,甚至不使用gles2。
![libgdx:[18]桌面系统运行示例程序](https://exp-picture.cdn.bcebos.com/edd84743040148fe46af67d88fd149299b880240.jpg)
5、此外,在Android平台上,你必须维护一个manifest清单文件,它定义了一个巨大的参数列表来配置你的应用。如果你不熟悉Android的清单文件,你应该花一些时间来阅读官方文档
![libgdx:[18]桌面系统运行示例程序](https://exp-picture.cdn.bcebos.com/3852f6e5eceeadbcdfc27dc3cd18dfdae53b7b40.jpg)
6、下面这个简短的不完全的列釉涑杵抑表是为了让你对manifest文件所包含的定义有一个初步的认识minSdkVersion:这是为应用程序运行所需的最低AP朐袁噙岿I级别。运行更低的API级别的设备将无法运行此应用;如果假定你的API级别是1,这可能使你的程序试图访问不可用的API时崩溃。targetSdkVersion:这是应用的目标API级别。这是用于向前兼容,在后来的API级别的行为会改变,可能突破旧的应用程序的行为。本规范不防止应用程序从低于minSdkVersion的API水平的设备上运行,如果未经声明,它的值被设置为等于minSdkVersion。Icon这是应用程序的图标Name:这是应用程序的主类的名字,或者mainactivity。注意在libgdx的项目中,这个是android程序的启动类。Label:这个会和你的应用程序的图标一起出现,还会出现下应用titlebar中。Screenorientation这个定义程序的显示方向。这个的值通常是portrait(tall)或者是landscape(wide)。更多详细内容请查看文档内容。--documentation
![libgdx:[18]桌面系统运行示例程序](https://exp-picture.cdn.bcebos.com/3ac71c214f5793563956c293effb960b30217040.jpg)
7、清单文件的另一个重要的部分是,应用程序应用权限要求,当一个用户要安装在设备上时,它所要求的权限。尽可能的不要请求那些不必要的权限,用户会有所疑虑,那是理所当然的,因为当他在请嫫绑臾潜求权限的列表中看到你一项你的应用的权限请求是他不会100%的理解程序的那些功能需要用到这些权限。为引进更多在Android上的权限问题的细节,请查看官方文档在/developer.android.com/guide/topics/security/permissions.html.现在,让我们尝试在一个真实的物理设备上运行应用程序,首先,确保你的Android设备通过USB电缆和电脑建立连接,并且打开调试模式。设置你的Android设备,在 /developer.android.com/tools/device.html.中按指示操作。现在,在项目资源浏览器中的demoandroid项目上,单击鼠标右键导航到RunAs|AndroidApplication.TheAndroidapplication现在应该有一个应用图标已经安装到你的设备上并且快乐的运行着呢。下面的图片是android项目在HTCDesireHD设备上运行的状态图片:
![libgdx:[18]桌面系统运行示例程序](https://exp-picture.cdn.bcebos.com/05e24be983aee8d72dc7d95c6b781431deb66640.jpg)
8、对于来自AndroidSDKAndroid模拟器,只是最后一句话,不要使用它!在写这本书的时候虚拟设备表现出很多严重的缺陷,比如对gles2的支持非常的差劲,在未来的版本中这些缺陷没有什么希望被解决,取而代之我们极度推荐使用你的真实的设备来调试和操作你的应用程序。
![libgdx:[18]桌面系统运行示例程序](https://exp-picture.cdn.bcebos.com/586bfdefe0781431a75b08dfdc6699cf03536240.jpg)