libgdx 环境搭建

2023-10-27


    

libgdx 环境搭建

分类: Android 2012-12-13 23:40 13994人阅读 评论(0) 收藏 举报

一、 开发包下载

1) libgdx 开发包下载: google code(最新 libgdx-0.9.7.zip    2012.11.12)

2) libgdx 主干源码下载: github tags



环境搭建

 1) 添加开发jar包

libgdx的android开发包主要有 gdx.jar, gdx-backend-android.jar,以及 armeabi armeabi-v7a 区别

解压libgdx -x.x.x.zip 文件, 可以看到以下目录树:


开发libgdx时,把画蓝色横线的开发包拷贝到自己的Android项目libs目录下,效果图如下:



2) 添加源码jar包

开发过程中,可能需要链接查看libgdx源码,因此需要添加 gdx-backend-android-sources.jar 和 gdx-sources.jar 源码包

添加步骤: 点击libgdx开发jar包中的引用函数——》查看源码——》Attach Source... ——》 选择上图 gdx-backend-android-sources.jar 和 gdx-sources.jar 源码包




3) 在自己的项目myLibgdx,添加完开发包jar和源码包jar后,其效果如下:




简单示例

1) 新建Activity

在自己项目myLibgdx中, 新建一个MainActivity,继承于libgdx父类 AndroidApplication

public class MainActivity extends AndroidApplication {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		initialize(new MyGame(), false);
	}
}


2) 自定义 MyGame 

上面 MainActivity 的 initialize() 中,使用了自定义的 MyGame 类,其实现 libgdx 父类接口 ApplicationListener , 详细定义如下:

public class MyGame implements ApplicationListener {
	private SpriteBatch batch;		// 初始化游戏精灵
	private BitmapFont bf;			// 初始化字体绘制
	
	@Override
	public void create() {					// 创建
		batch = new SpriteBatch();
		bf = new BitmapFont();
		bf.setColor(Color.RED);
		bf.setScale(1.0f);
	}

	@Override
	public void render() {					// 渲染
		Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
		Gdx.gl.glClearColor(0, 0, 0, 0);
		batch.begin();
		bf.draw(batch, "hello libgdx", Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2);
		batch.end();		
	}

	@Override
	public void resize(int arg0, int arg1) {	// 布局调整
	}

	@Override
	public void pause() {				// 暂停
	}

	@Override
	public void resume() {				// 恢复
	}

	@Override
	public void dispose() {				// 销毁
		bf.dispose();
		batch.dispose();
	}
}
运行结果:


源码下载 



libgdx生命周期

通过上面的简单示例,libgdx 运行流程已全部展示出来了,具体流程如下:

1) 主MainActivity,继承于libgdx父类 AndroidApplication, 而 AndroidApplication 又继承Android 基本的Activity并实现了libgdx自定义的接口类 Application, 关系如下:

public class AndroidApplication extends Activity implements Application 


2) 自定义 MyGame,实现 libgdx 父类接口 ApplicationListener, 而ApplicationListener 接口如下:

public class MyGame implements ApplicationListener {
   public void create () {
   }

   public void resize (int width, int height) { 
   }

   public void render () {        
   }

   public void pause () { 
   }

   public void resume () {
   }

   public void dispose () { 
   }
}


逻辑流程如下:



逻辑流程的功能描述:

方法名

功能描述

create()

应用创建时,被调用且只调用一次

resize(int width, int height)

游戏屏幕每次重置大小且不在暂停状态时调用此方法,在create()后仅调用一次,参数是屏幕被重置后的新宽度和高度(像素)

render()

每次渲染发生时,游戏循环调用此方法。游戏逻辑更新常在此方法中,即循环刷新绘制游戏的逻辑画面

pause()

在android中当Home键按下或重新进入程序时调用,这是一个保存游戏状态的好时刻,resume()不一定会被调用

resume()

这个方法仅在android中调用,当应用从pause状态重新获取焦点时resume

dispose()

当应用销毁destroyed时,调用此方法,在pause()之后

 


libgdx 应用开发的逻辑流程图:




五、 总结

从上文的示例和流程图可以看出,libgdx 游戏开发步骤如下:

1) AndriodApplication,继承自Android 的基类 Activity, 起到了一个Activity的作用,但是我们并不在这个“Activity”中做太多的工作,当然可以做一些保存Context上下文之类的工作,如 onSaveInstanceState(), onRestoreInstanceState()等

2) libgdx开发中实际的显示工作,是交给一个实现了ApplicationListener接口的类来完成,它有所需要的所有功能:创建,渲染(刷新),暂停,恢复,销毁等。所以实际的情况是,我们在游戏中的大部分绘图工作都是放在这个页面进行的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

libgdx 环境搭建 的相关文章

  • 基于.net平台常用的框架整理

    分布式缓存框架 Microsoft Velocity 微软自家分布式缓存服务框架 Memcahed 一套分布式的高速缓存系统 目前被许多网站使用以提升网站的访问速度 Redis 是一个高性能的KV数据库 它的出现很大程度补偿了Memcach
  • 若依后台管理系统学习

    前端系统是指运行在浏览器或者移动设备上的用户界面层 它负责与用户交互 展示数据 调用后端服务等 前端系统的架构设计需要考虑以下几个方面 前端系统在整个系统中的位置和关系 你需要明确前端系统与后端服务 数据库 第三方接口等的架构上的关系 业务
  • requests模块----这是一个强硬的手段,有多强呢?看看你就知道了

    目录 requests的作 发送简单的get请求 发送带header的请求 发送POST请求 cookies参数的使 cookie和session区别 使 代理 设置请求超时时间 请求SSL证书 开始了 requests模块简单介绍 1 r
  • Java8基础之Serializable接口

    Serializable接口介绍 Serializable 是 java io 包中定义的 用于实现 Java 类的序列化操作而提供的一个语义级别的接口 Serializable 序列化接口没有任何方法或者字段 只是用于标识可序列化的语义
  • shift算法的实现

    ok 接上文 咱们一个一个的来编写main函数中所涉及到所有函数 这也是本文的关键部分 cpp view plain copy print 下采样原来的图像 返回缩小2倍尺寸的图像 CvMat halfSizeImage CvMat im
  • ***总结:在linux下连接redis并进行命令行操作(设置redis密码)

    root iZ254lfyd6nZ cd root iZ254lfyd6nZ ls bin boot dev etc home lib lib64 lost found media mnt opt proc root sbin selinu
  • 通信算法之184: 物理层DPD/CFR/LNA/PA

  • 机器人教育在STEM课程中的设计研究

    在美国 科学 技术 工程和数学 STEM 教育被视为确保国家成功未来的重要一步 基于现实世界中的问题开发的STEM课程 可以使课程更贴近学生和教师 对于更优质的STEM教育的迫切要求主要基于以下因素的考虑 许多职业现在需要一支能够参与STE
  • 啊哈C——学习6.4陶陶摘苹果

    2015年2月5日22 02 03 1 陶陶家的院子里有一颗苹果树 每到秋天树上就会结出10个苹果 苹果成熟的时候 陶陶就会跑去摘苹果 陶陶有个30cm高的板凳 当她不能直接用手摘到苹果是 就会踩到板凳上再试试 现在一直10个苹果到地面的高
  • 华为OD机试 -百钱买百鸡问题(C++ & Java & JS & Python)

    描述 公元五世纪 我国古代数学家张丘建在 算经 一书中提出了 百鸡问题 鸡翁一值钱五 鸡母一值钱三 鸡雏三值钱一 百钱买百鸡 问鸡翁 鸡母 鸡雏各几何 现要求你打印出所有花一百元买一百只鸡的方式 输入描述 输入任何一个整数 即可运行程序 输
  • 树莓派4b配置OpenWrt联网

    文章目录 前言 一 下载固件 二 配置wan口 三 简单介绍 1 修改无线名称 设置密码 2 下载软件包 总结 前言 树莓派4b内置wifi模块 加一个千兆网口 好像有一种办法 通过无线wifi链接其他wifi通网 然后把这个网口作为lan
  • 登录鉴权

    注册登录鉴权 1 1 用户注册 前台需要给我们传递用户名 密码 手机号 手机验证码 验证用户前台传过来的数据是否符合规范 我们使用的Hibernate Validator框架实现的服务端表单校验 短信验证码这块 我们采用的阿里的大于短信接口
  • python 处理数据小工具_Python数据处理工具使用方法整理

    从csv文件创建DataFrame类型的数据结构 gt gt gt df pd read csv xxx csv DataFrame类型的形状和长度 gt gt gt df shape 38 39 gt gt gt len df 38 各列
  • mac的Vscode 中 Remote-SSH 连接不上服务器,但是在终端中使用SSH可以连接

    Vscode 中 Remote SSH 连接不上服务器 但是在终端中使用SSH可以连接 我试了各种办法 最后准备删除配置文件看看 结果发现没有权限 怀疑是我用了conda管理环境 可能造成base环境权限变了 总之 我在vscode的终端中
  • 解决android每次请求,后台sessionId都会变换(springboot配置web.xml)

    问题 后台生成验证码以后 存放到session缓存中 将验证码发送给指定手机 当安卓手机输入验证码调用注册接口时候 后台接口从session中无法取出放入的验证码 原因 android每次请求 后台sessionId都会变换 解决方法 1
  • Word论文书写--页眉线设置

    开始 gt 段落 gt 边框和底纹 基本设置如下 结果
  • 用Flex布局模型开发网页

    目录 一 为什么要用Flex布局 对比浮动有什么优点 二 Flex布局组成 三 如何使用Flex布局 1 基本方法 2 主轴对齐方式 3 侧轴对齐 4 改变主轴方向 5 弹性盒子换行 四 弹性盒子多场景运用 1 圣杯布局 2 如何让父盒子里

随机推荐

  • JBoss 系列四十四:jBPM5示例之 GateWay

    jBPM5中的GateWay如果选择AND则表示平行执行多个Task ParallelExecute示例演示jBPM5中如何平行执行多个Task ParallelExecute流程如下 上图为平行执行多个Task的流程 其中Task1 1
  • 002-从零搭建微服务-认证中心(二)

    写在最前 如果这个项目让你有所收获 记得 Star 关注哦 这对我是非常不错的鼓励与支持 源码地址 https gitee com csps mingyue 文档地址 https gitee com csps mingyue wikis 创
  • Shadow Build 读取不到配置文件

    问题 使用阴影构建后 无法读取配置文件 方法 阴影构建在单独目录中搜索 普通构建在项目目录搜索
  • MySQL的安装与配置

    免安装版的Mysql MySQL关是一种关系数据库管理系统 所使用的 SQL 语言是用于访问数据库的最常用的标准化语言 其特点为体积小 速度快 总体拥有成本低 尤其是开放源码这一特点 在 Web应用方面 MySQL 是最好RDBMS Rel
  • C语言文件操作详解

    C语言文件操作详解 一 文件指针和流 1 文件指针 2 流 二 文件的打开与关闭 1 fopen与fclose函数 2 文件打开方式 3 实例演示 三 文件的顺序读写 一 fgetc与fputc函数 1 fgetc总述 2 fgetc使用实
  • UE4-材质自发光

    1 创建材质 选择无光照 将贴图及控制自发光强度参数逻辑连接完成 使用staticswitchparameter 节点进行判断是否开启自发光 2 设置完成后 在场景中选择自发光物体 细节面板找到光照 Lightmass 使用静态光照的自发光
  • Python 数据处理之散点图--matplotlib

    import matplotlib pyplot as plt plt rcParams font sans serif SimHei 解决中文显示问题 x values 1 2 3 4 5 y values 3000 4000 6000
  • 华为od机试 最大价值的矿堆 Java

    题目 我们规定 0表示空地 1表示银矿 2表示金矿 矿堆表示由相邻的金矿或银矿连接形成的地图 银矿价值是1 金矿价值是2 你的目标是找出地图中最大价值的矿堆 并且输出该矿堆的价值 示例1 输入 22220 00000 00000 01111
  • SeleniumLibrary4.5.0 关键字详解(五)

    SeleniumLibrary4 5 0 关键字详解 五 库版本 4 5 0 库范围 全局 命名参数 受支持 简介 SeleniumLibrary是Robot Framework的Web测试库 本文档说明了如何使用SeleniumLibra
  • 全基因组选择-GS的技术评估

    基因组选择的流程 GS一般包括以下步骤 图1 首先建立参考群体 reference population 参考群体中每个个体都有已知的表型和基因型 通过合适的统计模型可以估计出每个SNP或不同染色体片段的效应值 然后对候选群体 candid
  • Tomcat 弱口令 && 后台getshell漏洞

    漏洞编号 VUL 2021040008 爆发时间 2018 10 10 漏洞简介 Tomcat支持在后台部署war文件 可以直接将webshell部署到web目录下 其中 欲访问后台 需要对应用户有相应权限 影响版本 Tomcat8 x T
  • vue格式化时间戳

    js var articleContent new Vue el articleContent data articles Vue filter yearMonthTime function value value为13位的时间戳 func
  • SpringCloud LoadBalancer 新一代负载均衡器

    前言 工作中使用 OpenFeign 进行跨服务调用 最近发现线上经常会遇到请求失败 java net ConnectException Connection refused connect 复制代码 通过排查我们发现不是接口超时 而是有时
  • 【hadoop——Hive的安装和配置】保姆式教学

    目录 一 Hive的安装和配置 1 Hive并不是hadoop自带的组件 因此我们需要去下载hive 此次课我们使用hive 1 2 1版本 下载地址为 2 下载完成之后 安装包默认保存在下载文件夹中 解压安装包apache hive 1
  • 【LeetCode】7. 整数反转 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,

    7 整数反转 给你一个 32 位的有符号整数 x 返回将 x 中的数字部分反转后的结果 如果反转后整数超过 32 位的有符号整数的范围 2 31 2 31 1 就返回 0 假设环境不允许存储 64 位整数 有符号或无符号 示例 1 输入 x
  • HTML5_京东首页样式

    通用样式 去掉边框 里面的东西不会乱 页头 头部样式 header background f7f7f7 header gt header inner height 32px header gt header inner gt lf line
  • 架构师学习--组件化开发之APT使用及JavaPoet

    一 概念及作用 什么是APT 全称是Annotation Processing Tool 翻译过来就是注解处理工具 它的作用就是可以在代码编译期间对注解进行处理 并且生成Java文件 减少手动的代码输入 因此它能够使我们编写的代码更加优雅
  • IOday1

    附加题 带注册功能的账号密码输入 include
  • 记一次生产请求耗时的问题

    最近发现lb上记录的request time比upstream response time大的比较多 例如upstream response time记录是0 062 request time记录的就是5 064等等 整个耗时很反常 而且出
  • libgdx 环境搭建

    libgdx 环境搭建 分类 Android 2012 12 13 23 40 13994人阅读 评论 0 收藏 举报 一 开发包下载 1 libgdx 开发包下载 google code 最新 libgdx 0 9 7 zip 2012