Android游戏开发之在libgdx中使用Box2d
在游戏开发中难免会需要模拟现实情况,一般常见的就是模拟物理世界。 比如物体碰撞,车辆前进,物体下落等。也许有人会觉得原来有实现过一些效果没有看到用什么物理知识呢。 在我看来引入物理引擎并不是必须的,但是这样可以让游戏更逼真。物理引擎的话首选Box2d,但是它是C++写的,直接用不方便。 在Android游戏开发中使用物理引擎一般有三个比较好的选择: 1.JBox2d Box2d的Java移植版本,...
Android游戏开发之GIF动画播放
GIF动画大家都很熟悉了吧,GIF格式的图片本身就可以做成动画效果,人家是否在想,要是能直接播放GIF动画,那么做游戏界面不是很轻松了吗?当然,程序员可以不用自己去做动画,只需要直接播放美工做好的GIF动画就可以了。不光是你在想,我也在想呢,全世界的程序员都在想,目前己经有很多程序员已经实现了这一功能,也出现了一些开源工程。笔者这里把自己在做JavaME开发时使用的播放GIF的类移植到了Andro...
Android游戏开发之Frame动画
大家见得最多的应该就是Frame动画了,Android中当然也少不了它。它的使用更加简单,只需要创建一个AnimationDrawable对象来表示Frame动画,然后通过addFrame方法把每一帧要显示的内容添加进去,最后通过start方法就可以播放这个动画了,同时还’可以通过setOneShot方法来设置该动画是否重复播放。下面我们就通过Frame动画来模拟日全食的效果。先看看程序运行的效果...
Android游戏Graphics绘图之全屏显示
我们前面所写的Android程序在运行时屏幕顶部都带有标题栏和系统信息栏,但是在开发Android游戏时,可能会因为界面美观等因素不需要显示这些多余的界面,而将更多的区域留给游戏界面来控制,那么就需要把屏幕的现实模式设置为全屏模式。通过requestWindowFeature方法可以设置标题栏是否显示,通过setFlags方法可以设置全屏模式,具体运行效果如图5-18所示。 图5-18中取消了状...
Android游戏Graphics绘图之Shader类介绍
Android提供了Shader类专门用来渲染图像以及一些几何图形,Shader下面包括几个直接子类,分别是BitmapShader、ComposeShader、LinearGradient、RadialGradient、SweepGradient。BitmapShader主要用来渲染图像,LinearGradient用来进行线性渲染,RadialGradient用来进行环形渲染,SweepGra...
Android游戏Graphics绘图之图像像素操作
我们在玩游戏时经常会看到一些图像的特效,比如半透明等效果。要实现这些效果并不难,只需要对图像本身的像素执行操作。Android中的Bitmap同样提供了操作像素的方法,可以通过getPixels方法来获得该图像的像素并放到一个数组中,我们处理这个像素数组就可以了,最后通过setPixels设置这个像素数组到Bitmap中。 在Android中,每一个图像像素通过一个4字节整数来展现:最高位字节用作...
Android游戏Graphics绘图之图像缩放
前一篇讲了如何利用Matrix来旋转图像,那么又如何来缩放图像呢?其实和旋转一样,不同的是需要使用Matrix的postScale方法来设置图像缩放的倍数。’下面的示例可以通过上下键来缩小和放大图像。图5-13所示是经过缩小的图像,图5-14则是经过放大的图像。 下面我们来看看如何实现旋转和缩放功能,代码如下: packagecom.yarin.android.Examples_05_09; ...
Android游戏Graphics绘图之绘制字符串
在Android游戏开发中,我们不可能全部用图片来显示,很多时候需要绘制字符串,比如开发一个RPG的游戏,有大量的对话内容,这时如果全部用图片来显示肯定不行。下面我们就看看如何在Canvas画布中绘制字符串吧。 Android中提供了一系列的drawText方法来绘制字符串,在绘制字符串之前需要设置画笔对象,包括字符串的尺寸、颜色等属性。使用FontMetrics来规划字体的属性,可以通过getF...
Android游戏Graphics绘图之几何图形绘制
前两节调整好了画笔,设置好了画布,现在需要在画布上绘制内容了。其实前面我们已经看到了在屏幕上显示的矩形、圆形、三角形等几何图形,下面我们来看看在Android中可以绘制出哪些几何图形,如下表所示。 方法 说明 drawRect 绘制矩形 drawCircle 绘制圆形 drawOval 绘制椭圆 &nbs...