Libgdx游戏开发系列教程(1)——环境配置及demo运行

目录

环境

JDK环境

项目创建

1.下载gdx-setup.jar文件

2.填写信息,创建项目

demo运行步骤

1.修改gradle.properties

2.安装Build-Tool

3.运行


Libgdx游戏是基于Java的一款游戏引擎,可以发布Android,桌面端,Html,IOS等游戏,出名的《杀戮尖塔》也是用了此引擎制作的

本文以Libgdx1.10.0版本,参考官方文档的步骤,记录本人环境配置及运行demo的过程,希望给各位带来些许帮助 😄

环境

JDK环境
  • JDK8
  • JDK11

这里,也解释一下为什么需要JDK8和JDK11两个JDK版本

在下面讲解的项目创建步骤中,需要从Libgdx官网中下载一个jar文件

这个jar文件,主要就是方便快速创建项目代码,我猜测是其使用JavaFx编写的,因为我尝试过使用JDK11的java -jar命令去执行它,发现打不开

然后,为什么需要JDK11呢?因为创建出来的项目代码,项目最低支持JDK11,而不是JDK8

JDK11可以不用自己写,可以直接使用IDE自带的JDK11,像IDEA和Android Studio,根目录已经有一份JDK11,

但两个软件的文件夹名有所不同,IDEA根目录下是jbr文件夹,Android Studio则是jre文件夹

如下图是IDEA中的JDK11:

IDE环境

  • Android Studio Chipmunk|2021.2.1 及以上版本 (下载地址)
  • IDEA 2020.3.1以上

PS:上面的软件二选一,看你需求,如果你不打算开发Android版本,选IDEA即可

本人是打算开发桌面端和Android版本,所以下文均是以Android Studio进行讲解,由于Android Studio是基于IDEA开发的,所以各位也可以参考

项目创建

1.下载gdx-setup.jar文件

访问Creating a Project - libGDX,找到对应的按钮进行下载

如下图所示:

2.填写信息,创建项目

第二步,则是打开gdx-setup.jar文件,然后填写对应的项目信息,即可创建项目代码

PS:这里,我电脑是可以双击打开的,如果你电脑没法双击打开jar文件,可以选择执行下面命令来打开

java -jar xx.jar

打开之后,我们可以看到如下页面

  • Name: 游戏名称
  • Package: 游戏包名
  • Game Class: 游戏的主类Java文件名
  • Destination: 项目代码文件夹目录
  • Android SDK: Android SDK文件夹

这里我们需要改下仓库源设置,点击高级设置

填入国内的Maven仓库源(生成项目代码的时候里面的Gradle仓库源会添加你加的仓库源)

这里我填的是阿里云的Maven仓库地址

https://maven.aliyun.com/repository/public

点击生成按钮,即可开始生成项目

这里,可以看到日志中,出现了Build FAILED的提示,这里实际上就是下面demo运行起来的报错,我们放在下一章节说明

至此,我们已完成了项目的创建工作,得到了一个包含代码的项目

demo运行步骤

1.修改gradle.properties

下面,我们使用Android Studio软件打开项目文件夹

之后就会发现出现了错误

这里,我是因为当前是JDK8环境,所以导致报错了,提示有以下3种解决方法:

  1. 修改我们IDE的设置
  2. 修改全局的JAVA_HOME的环境变量
  3. 修改项目文件夹中的gradle.properties文件

因为不想动我本地电脑的相关环境变量配置,所以我决定采用第三种

找到gradle.properties文件

加上以下属性即可

org.gradle.java.home=D\:/app/dev/jdk-11.0.2

改为你JDK11文件夹目录即可

但是实际发现,加上此段代码后,用Android Studio打开项目的时候,Gradle还是会报上述的问题,感觉像是Android Studio的bug吧

这个时候,我就用了第一种方法,去修改了Android Studio的Gradle设置,便是解决了问题

上图我是选择了Android Studio自带的JDK11版本,发现也能用

你的项目如果是只支持电脑版的话,应该完事无碍就可以跑起项目了(下文的步骤2则是关于Android的知识了)

2.安装Build-Tool

由于项目代码里的Android默认是用了31的build-tool,但是我的本地SDK没有安装,所以需要安装一下31版本的工具

步骤如下图所示:

3.运行

桌面端运行,打开desktop目录下的DesktopLauncher文件,点击运行即可

如果Android版本的,则是和普通的Android项目一样,运行即可

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/71202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【jenkins配置记录】

全局工具配置: D:\Program Files\Java\jdk1.8.0_281 D:\Program Files\Git\bin\git.exe E:\allure-2.13.2 2. GIT 3. 定时任务 H 8 * * 1-5 4. 构建触发器 5. 构建后操作 Allure Report 吐血记录:报告路径可以为 workspace 相对路径 6. 系统配置 em…

C++:内联函数

内联函数可以用来降低运行时间,当内联函数收到编译器的指示时,即可发生内联:编译器会使用函数的定义体来替代函数调用语句,此行为发生在编译阶段。 定义内联函数涉及的关键字为inline,例如: inline void …

Linux网络相关概念和重要知识(1)(网络协议、网络通信)

目录 1.网络协议 (1)网络的起源 (2)为什么需要协议 (3)协议分层及其设计的解耦 (4)OSI定义的七层网络模型 ①分层及其功能 ②TCP/IP协议 ③传输层协议(TCP和UDP&a…

【入门Web安全之前端学习的侧重点和针对性的建议】

入门Web安全之前端学习的侧重点和针对性的建议 一、HTML:理解攻击载荷的载体二、CSS:次要但需警惕点击劫持三、JavaScript:渗透测试的核心重点四、浏览器工具:渗透测试的实战武器五、学习建议与资源六、总结:渗透测试者…

QILSTE H6-C210TCG高亮翠绿光LED灯珠 发光二极管LED

# H6-C210TCG:高亮翠绿光LED的复杂特性解析 在现代电子设备的复杂设计中,H6-C210TCG型号的高亮翠绿光LED以其独特的光学和电气特性脱颖而出。这款LED不仅具备紧凑的尺寸,还融合了复杂的参数设计,使其在众多应用场景中表现出色。然…

Linux操作系统5-进程信号2(信号的4种产生方式,signal系统调用)

上篇文章:Linux操作系统5-进程信号1(信号基础)-CSDN博客 本篇Gitee仓库:myLerningCode/l25 橘子真甜/Linux操作系统与网络编程学习 - 码云 - 开源中国 (gitee.com) 本篇重点:信号的4种产生 目录 一. signal系统调用 …

如何在docker中的mysql容器内执行命令与执行SQL文件

通过 docker ps -a 查询当前运行的容器,找到想执行命令的容器名称。 docker ps -a若想执行sql文件,则将sql文件放入当前文件夹下后将项目内的 SQL 文件拷贝到 mysql 容器内部的 root下。 sudo docker cp /root/enterprise.sql mysql:/root/然后进入 my…

STM32 RTC实时时钟详解与HAL库实战教程

摘要:本文深入讲解STM32的RTC(Real-Time Clock)模块,涵盖原理分析、CubeMX配置、HAL库编程实现,并提供完整的闹钟设置与时间校准例程代码。通过本文,您将掌握RTC在低功耗场景下的核心应用技巧。 1. RTC模块…

Spring Boot拦截器(Interceptor)与过滤器(Filter)详细教程

Spring Boot拦截器(Interceptor)与过滤器(Filter)详细教程 目录 概述 什么是拦截器(Interceptor)?什么是过滤器(Filter)?两者的核心区别 使用场景 拦截器的典…

Tauri跨平台开发问题及解决方案深度解析(React版)

Tauri跨平台开发问题及解决方案深度解析(React版) 一、环境配置与项目初始化难题(React适配) 1.1 React项目初始化 推荐模板: # 使用ReactTypeScript模板 npm create tauri-applatest -- --template react-ts# 项目…

AIGC和搜索引擎的异同

AIGC(生成式人工智能)与搜索引擎的核心差异体现在信息处理方式和输出形态上,我们可以从以下维度对比: 一、工作原理的本质差异 信息检索机制 搜索引擎:基于关键词匹配(如"中暑怎么办"→返回相关…

SFT与RLHF的关系

在大模型训练中,SFT(监督微调)和RLHF(基于人类反馈的强化学习)是相互关联但目标不同的两个阶段,通常需要结合使用以优化模型性能,而非互相替代。以下是关键要点: 1. 核心关系 SFT&…

C# 类型转换

C# 类型转换 引言 在C#编程语言中,类型转换是一种将一个数据类型的变量转换成另一个数据类型的操作。类型转换是编程中常见的操作,特别是在处理不同数据类型的变量时。本文将详细探讨C#中的类型转换,包括隐式转换和显式转换,以及…

提升系统效能:从流量控制到并发处理的全面解析

在当今快速发展的数字时代,无论是构建高效的网络服务、管理海量数据,还是优化系统的并发处理能力,都是技术开发者和架构师们面临的重大挑战。本文集旨在深入探讨几个关键技术领域,包括用于网络通信中的漏桶算法与令牌桶算法的原理…

Git GitHub基础

git是什么? Git是一个分布式版本控制系统,用于管理源代码的变更。它允许多个开发者在同一个项目上协作,同时跟踪每个修改的历史记录。 关键词: 分布式版本控制软件 软件 安装到我们电脑上的一个工具 版本控制 例如论文&…

派可数据BI接入DeepSeek,开启智能数据分析新纪元

派可数据BI产品完成接入DeepSeek,此次接入标志着派可数据BI在智能数据分析领域迈出了重要一步,将为用户带来更智能、更高效、更便捷的数据分析体验。 派可数据BI作为国内领先的商业智能解决方案提供商,一直致力于为用户提供高效、稳定易扩展…

Linux-ftrace-双nop机制的实现

Linux 内核调试工具ftrace 之(NOP动态插桩的实现原理) ftrace 是 Linux 内核中的一种跟踪工具,主要用于性能分析、调试和内核代码的执行跟踪。它通过在内核代码的关键点插入探针(probe)来记录函数调用和执行信息。这对…

Qt互斥锁(QMutex)的使用、QMutexLocker的使用

Qt互斥锁【QMutex】的使用、QMutexLocker的使用 基于读写锁(QReadWriteLock)的线程同步Chapter1 Qt互斥锁(QMutex)的使用、QMutexLocker的使用一、QMutexLocker和QMutex实现示例图二、QMutex和QMutexLocker的关系(个人理解)三、QMutex使用和QMutexLocker…

【无标题】Ubuntu22.04编译视觉十四讲slambook2 ch4时fmt库的报错

Ubuntu22.04编译视觉十四讲slambook2 ch4时fmt库的报错 cmake ..顺利&#xff0c;make后出现如下报错&#xff1a; in function std::make_unsigned<int>::type fmt::v8::detail::to_unsigned<int>(int): trajectoryError.cpp:(.text._ZN3fmt2v86detail11to_unsi…

SpringBoot ——简单开发流程实战

本文使用SpringBoot进行电商系统商品数据增删改查的简单开发流程。 本文目录 一、创建Spring Boot项目二、配置数据库连接三、创建实体类四、创建Repository接口五、创建Service层六、创建Controller层七、测试 一、创建Spring Boot项目 可以通过https://start.spring.io/或者…