`
seya
  • 浏览: 355239 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Android HammerIt游戏开发 经验总结

阅读更多

这是一款敏捷类休闲小游戏,以点击屏幕打到随机跳出的头像为目标。主要有这么几个功能:

1.  设置人物头像

打开一个照相机,上面有猪头轮廓的mask, 把目标头像对准放到这个轮廓里面,按下中间的D-Pad键拍照。设置头像成功。

2.  设置声音

点击开始按钮,开始录音,完成后点击结束。点击播放来试听。不满意重新录制。

3.  开始游戏

在游戏中刚才设置好的头像会随机的从不同洞里面冒出来,看准时机点击它,它就原形毕露啦。被打以后会发出刚才录制的声音。

 

游戏的实现:

1.       使用Canvas画图。主游戏界面上使用了Handler消息处理机制来实现对UI的更新,在android里面,涉及到UI的操作,是不能用传统的Thread的方式来更新的。Handler就负责把消息抛出和捕捉,在捕捉到消息的时候能调用当前的View里面的方法来更新UI.然后在更新UI的方法里面再去调用Handler抛出消息,Handler然后接受到这个消息,再次更新UI,达到循环刷界面的目标。这里主要使用了两个handler:一个叫redfreshHandler,负责UI的定时刷新,主要是call invalidate()去刷新。 另一个是posHandler,负责定时更新头像的位置和显示。被打中以后就不显示了。要过一段时间才显示出来。其中还包括了对GIF动画图片的支持。

 

2.使用CameraPreview来照相,并与outline做整合。最终存储到SDCard。在存储的时候,使用了AsyncTask,实现异步操作,不会影响当前用户。

 

3 使用Recorder的录音,存储到SDCARD。资源的释放。

 

遇到的问题:

1.    Transparent图片的存储。只能用PNG格式,创建的Bitmap得支持alpha, 即使用Config.AGRB_8888作为参数创建Bitmap.

2.    Camera preview的图片像素过大,超过了Bitmap的大小限制。使用压缩模式,Bitmap.CongigOption, inSample = 4.

Previewoutline的合成。大小要经过比例缩放,然后进行椭圆截取,使用

ShapeDrawable shape = new ShapeDrawable(new OvalShape());

       shape.getPaint().setShader(makeTiling(bmp));

private Shader makeTiling(Bitmap bmp) {

 

       return new BitmapShader(bmp, Shader.TileMode.REPEAT,

 

       Shader.TileMode.REPEAT);

 

}

 

可以改进的地方:

1.    可以考虑增加多个outline供用户选择

2.    可以存储多份头像和声音。

3.    UI上考虑改进,风格上可以更Cute.

最后附上安装文件。

 

(updated at 2010/05/17, 增加了拍照按钮,修复在打电话以后返回图像不更新问题。)

分享到:
评论
14 楼 seya 2010-05-30  
oldv 写道
感觉很多想法想起来容易,要实现得好,比较难啊。

比如上面提取歌曲的节奏,得了解歌曲的数据,而且可能需要大量的运算,最后不一定适合在手机上实现,只能头脑风暴时臆想一下而已。

这个值得去试一下,就怕对性能有影响。感谢您的宝贵意见。
13 楼 oldv 2010-05-28  
还有,录音的效果可能需要处理一下。

可否自动截取声音最大的那一部分?
12 楼 oldv 2010-05-28  
感觉很多想法想起来容易,要实现得好,比较难啊。

比如上面提取歌曲的节奏,得了解歌曲的数据,而且可能需要大量的运算,最后不一定适合在手机上实现,只能头脑风暴时臆想一下而已。
11 楼 oldv 2010-05-28  
挺好玩的小游戏。

感觉判定不是很准确,需要整个手指覆盖住猪头才算击中。可以设定一个百分比阀值,击中的面积超过了阀值即判击中。

另外,出猪头最好控制一下节奏,可以用某个简单明快歌曲的节奏来,使打猪头象打拍子一样。

仅供参考。
10 楼 seya 2010-05-17  
geeser 写道
是否可以多定义几个表情?》

很好的建议。
9 楼 geeser 2010-05-17  
是否可以多定义几个表情?》
8 楼 seya 2010-05-15  
tiantianzzz 写道
设置猪头的时候    按下中间的D-Pad键拍照      这个键在哪 - -

就是用来确认的那个按钮。
7 楼 tiantianzzz 2010-05-14  
设置猪头的时候    按下中间的D-Pad键拍照      这个键在哪 - -
6 楼 tiantianzzz 2010-05-14  
不错 很好玩 哈哈
5 楼 稻-草 2010-05-14  
头像和声音的创意不错
4 楼 BarryWei 2010-05-13  
代码就不能格式化一下啊?看着那么难受……
3 楼 seya 2010-05-13  
drhu00 写道
published on Android Mar keting?

还没有,目前发出来看看反馈。后续改进以后再考虑publish to market
2 楼 drhu00 2010-05-12  
just tried it, you really need improve it. Please use dp, not px. Contact me at drhu00@yahoo.com and I'll tell you the problem.
1 楼 drhu00 2010-05-12  
published on Android Mar keting?

相关推荐

Global site tag (gtag.js) - Google Analytics