随笔分类 - libgdx学习记录
摘要:1.新建Java Project。2.添加libs,添加相关的jar文件。3. 在Project Build Path中,添加Reference。4. 添加文件夹assets,并右键Build Path——Use as source folder。然后即可运行。
阅读全文
摘要:给定p1, p2, p3, p4四个点,p1,p2为一条线段,p3,p4为一条线段,检测其是否有交点。可分为三种情况:1. L2与x轴平行2. L2与y轴平行3. L2与坐标轴不平行。(L1与坐标轴平行,类似处理)基本思路,求出交点坐标,并检测其是否在两个线段内即可。检测代码: 1 publ...
阅读全文
摘要:libgdx中Math封装了Polygon这个类,它是由多个定点进行描述实现的,在进行物体间的碰撞时,物体轮廓有时候是不规则的,这时候可以用一个多边形勾勒出其大概的轮廓,对其进行模拟。Polygon内部自带是否包含点contains这个函数,通过这个函数我们可以判断两个多变行是否碰撞,即检测两个多边...
阅读全文
摘要:Rect与Circle重叠有三种情况:1. Rect至少有一个角在Circle里面2. Circle与Rect的左边或右边相交,或者Circle在Rect内3. Circle与Rect的顶边或底边相交,或者Circle在Rect内判断代码: 1 public static boolean I...
阅读全文
摘要:NinePatch用于图片纹理拉伸显示。当图片拉伸时,4个角不会拉伸,而只有中间的部分会拉伸,适合做圆角矩形类的Button。简单示例: 1 package com.fxb.newtest; 2 3 import com.badlogic.gdx.ApplicationAdapter; 4 imp...
阅读全文
摘要:模拟移动选择图片,采用相机实现。 1 package com.fxb.newtest; 2 3 import com.badlogic.gdx.ApplicationAdapter; 4 import com.badlogic.gdx.Gdx; 5 import com.badlogic...
阅读全文
摘要:libgdx是一个强大的游戏框架,不仅支持2d部分,同时还支持3d部分。libgdx的3d部分投影主要通过PerspectiveCamera实现。物体的显示过程:1. 创建远景相机,角度一般设为67,并设置其位置、观看点、近距离和远距离。2. 创建模型创建器,并创建出一个物体模型。之后通过模型创建出...
阅读全文
摘要:Box2d中,物体可以接受力(Force)、冲量(Impulse)和扭矩(Torque)。这些物理元素都能改变物体的运动形式,并且默认都会唤醒物体,当然只是针对动态物体。 力是一个持久的效果,通过Box2d内置的积分器实现运动变化。 冲量是一个瞬时效果,能立马改变其效果。 主要函数: body.ap...
阅读全文
摘要:在libgdx中,一般的逻辑流程都在rende()函数中执行,这个函数是由opengl的渲染线程调用的,一般的图形显示和逻辑处理都在这个线程中。一般情形下,在这个线程中处理就行了。但是当某些逻辑处理比较费时,可能会引起画面卡顿、不连贯等现象。这时,可以将主要的逻辑处理放在另一个线程中,然后再即将进行...
阅读全文
摘要:libgdx中,opengl 1.x要求图片长宽必须为2的整次幂,一般有如下解决方法1. 将opengl 1.x改为opengl 2.0。(libgdx 1.0版本后不支持1.x,当然不存在这个问题,这里针对的是0.9.9版本)2. 使用TexturePacker将图片打包好然后作成一张大图添加进来...
阅读全文
摘要:libgdx封装了Box2D物理引擎,通过这个引擎能够模拟物理现实,使设计出的游戏更具有真实感。libgdx中,Box2d程序的大概过程:1. 创建物理世界world,并设置重力加速度。2. 创建正交相机,并设置其宽高。Box2d中使用物理世界中米作为单位,而不是图像中的像素,通常设一个比值,这里为...
阅读全文
摘要:照相机在libgdx中的地位举足轻重,贯穿于整个游戏开发过程的始终。一般我们都通过Stage封装而间接使用Camera,同时我们也可以单独使用Camera以完成背景的移动、元素的放大、旋转等操作。Camera分为PerspectiveCamera(远景照相机)和OrthographicCamera(...
阅读全文
摘要:AssetManager用于对游戏中的资源进行加载。当游戏中资源(图片、背景音乐等)较大时,加载时会需要较长时间,可能会阻塞渲染线程,使用AssetManager可以解决此类问题。主要优点:1. 大多数资源加载器AssetLoader都是异步加载,可以避免阻塞渲染线程。2. 通过引用计数来进行释放资...
阅读全文
摘要:背景音乐是游戏中必备的元素,好的背景音乐能为游戏加分不少,使人更容易融入到游戏的氛围中去。Music类中主要有以下函数:play()播放stop()停止pause()暂停setVolume()设置音量setLooping()是否循环播放代码示例: 1 package com.fxb.newtest...
阅读全文
摘要:在游戏过程过程中,常常需要对某些数据进行保存,以确保下次运行时能够正确读取。如游戏中的金币、道具、游戏分数、已通过的关卡等。 Libgdx中常用的数据保存方式有Preferences和XmlReader。 1. Perferences Preferences常用来保存一些较短的、使用较频繁的值。 p...
阅读全文
摘要:利用ShapeRenderer可进行矩形进度条的绘制,多变形的填充等操作。这是根据角度获取矩形坐标的函数。 1 public Vector2 GetPoint( float x, float y, float w, float h, float angle ){ 2 Vect...
阅读全文
摘要:libgdx提供了ShapeRenderer这个工具,用它可以画点、画线、画圆、画矩形、画椭圆、画扇形,但是没有提供画圆角矩形的方法。 刚开始自己尝试分成8端,4端画直线,4端画扇形,发现多了半径几部分,于是又改成全部画线。 4端弧采用逐个描点实现。 具体代码: 1 package com.f...
阅读全文
摘要:地图对于游戏场景十分重要,很多游戏都需要对地图进行编辑,可使用TileMap进行编辑并生成对应的tmx格式地图文件。 编辑好后,可通过TmxMapLoader来读取地图文件。可通过一个正交相机OthographicCamera和正交地图渲染器OrthogonalTiledMapRenderer来进行...
阅读全文
摘要:粒子对制作画面特效很有用,可以使用Particle Editor进行自行编辑粒子效果,跟图片一起生成.p粒子文件,然后导入到程序中使用。本文所用的粒子效果是基于其自带的demo的。实例: 1 package com.fxb.newtest; 2 3 import com.badlogic.gdx....
阅读全文
摘要:前面讲到使用Hireo创建的BitmapFont以显示中文字体。这种方式效率很高,当所要显示的字的总数较少,并且大小比较固定时,可以采用这种方式。 但是这种也有弊端: (1)字体大小不能随意设置,当放大时就会变形。 (2)当所要显示的字总数较多或者经常变化时,会很麻烦。 libgdx对中文的支持不太...
阅读全文