一、介绍libGDX
libGDX是一个开源的跨平台的2D/3D的游戏开发框架,它由Java/C/C++语言编写而成。兼容(Windows/Linux/Android/IOS/HTML)等多个平台。
架构
主要构成如下图所示(源自百度百科,侵删)
Libgdx由audio、files、graphics、math、physics、scenes、utils这些主要模块所组成,它们分别对应了Libgdx中的音频操作,文件读取,2D/3D渲染,Libgdx绘图相关运算,Box2D封装,2D/3D游戏组件,以及Libgdx内置工具类。
它提供了便于设计游戏的清晰架构
游戏设计架构如下图所示
二、生成并导入一个libGDX项目
1、准备工作
- IDE(Android Studio、Eclipse、IDEA都可)我这里使用了Eclipse和Android Studio。
- JDK11+ 虽然官方说的是8以上就行,但最新版本的项目生成需要JDK11以上。
- Maven 准备好国内镜像地址
- Android SDK build tools 31.0.0.0+ *非必须 项目需要安卓时才需准备
- RoboVM OSS *非必须 项目需要IOS端时才需准备
做完准备工作后,我们就可以开始下一步了,准备生成项目
2、生成项目
官方准备了一个项目生成工具 gdx-setup
gdx-setuphttps://libgdx-nightlies.s3.eu-central-1.amazonaws.com/libgdx-runnables/gdx-setup.jar下载后可直接双击打开,如果打不开的情况还可以输入指令打开
java -jar gdx-setup.jar
打开后如图所示
从上往下依次是
- Project name 项目名称
- Package name 项目包名
- Game class 游戏主类名
- Output folder 生成项目存放地址
- Android SDK *非必须 如果勾选了Android才需要指定SDK
推荐:点击Advanced 在Maven Mirror URL里输入阿里云镜像地址
点击save保存完设置之后点击Generate开始生成项目
第一次生成项目时会非常慢,耐心等待几分钟。
完成后会出现如下图所示的成功提示,恭喜你项目生成成功了!
3、导入项目
导入前的准备
使用gdx-setup生成项目时,会自动下载gradle到C:\Users\{当前电脑用户名}\.gradle\wrapper\dists
然后配置gradle到系统变量等等操作,可以参考
在Eclipse导入
先让eclipse支持gradle,在Window -> Preferences -> Gradle -> 选中 Gradle wrapper 应用即可
然后在eclipse中,点击左上角 File -> import -> Gradle -> Existing Gradle Project ->选中项目所在文件夹-> Gradle wrapper -> finish 即可开始导入项目
导入成功后项目结构如图所示
在Android studio导入
打开AS后,点击Open,打开生成项目中的 build.gradle 文件
然后等待项目导入即可,导入成功后项目结构如图所示
三、运行项目
1、桌面端项目(desktop)
Eclipse
右键项目名-desktop模块 -> Run As -> Run Configurations ->Java Application ->创建一个新窗体
-> 在②中输入项目名 在③中输入项目桌面模块的主类 ->Run
成功后如下图所示
2、安卓端项目(Android)
Android Studio
选中虚拟机设备或是真机,点击运行,会自动打包生成APK并安装运行
3、网页端项目(HTML)
在生成项目路径下找到项目文件夹
在此文件夹中打开DOS窗口 或 在DOS窗口进入该文件夹(提示:在文件夹中按住shift右键会出现在此处打开Powershell窗口)
文件路径参考(D:\Project\libgdx\gdx-demo2),在命令行中输入以下代码
./gradlew html:superDev
开始运行
运行成功后会显示
打开网址http://localhost:8080/index.html就能看到游戏了
4、iOS端运行
具体操作查看这篇文章
5、命令行运行(扩展)
除了用工具以外,其实所有端都可以用命令行运行
Desktop:
./gradlew desktop:run
Android:
./gradlew android:installDebug android:run
注:使用安卓端命令运行时,ANDROID_HOME需要指向一个有效的Android SDK
iOS:
./gradlew ios:launchIPhoneSimulator
HTML:
./gradlew html:superDev
四、一个简单的小游戏(扩展) *非必须
根据官方文档的引导,官方会手把手教你如何做一个用水桶接雨滴的小游戏,地址如下
一个简单的小游戏(水桶接雨滴)Before diving into the APIs provided by libGDX, let’s create a very simple “game”, that touches each module provided by the framework, to get a feeling for things. We’ll introduce...https://libgdx.com/wiki/start/a-simple-game除此之外,还有一篇文档使我受益匪浅,一位博主引导如何用libGDX做出一个打砖块的小游戏雏形,很有趣,地址如下
LibGDX beginner tutorial(打砖块)https://colourtann.github.io/HelloLibgdx/index.html