`
seya
  • 浏览: 361963 次
  • 性别: 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?

相关推荐

    android打老鼠游戏源码

    通过深入分析和理解这个“打老鼠”游戏的源码,开发者不仅可以学习到Android的基本编程技巧,还能掌握游戏开发中的关键概念,如动画、事件处理、游戏循环和资源管理,这对于进一步开发更复杂的Android游戏将大有裨益...

    Android 安卓游戏打地鼠源码.rar

    总结,Android 安卓游戏打地鼠源码是一个学习Android游戏开发的宝贵实例。通过对源码的剖析,开发者可以了解Android游戏的基本架构、图形渲染、事件处理和性能优化等关键点,为自己的游戏开发之旅积累经验。在实际...

    Hammer:基于Android组件的开发框架

    Hammer Android component-based development framework What is a Chuizi 「锤子」是一个Android组件化快速开发框架 特征 组件化开发通用框架, 高度解耦,方便配置 提供Base 基类(BaseActivity, BaseFragment, Base...

    hammer的手势开发

    移动端手势开发,滑动及触屏等效果使用,源代码

    unity3d 游戏人物模型 Hammer Warrior 巨锤勇士战士带动作.rar

    总结来说,这个压缩包提供的Unity3D游戏人物模型Hammer Warrior包含了丰富的动作资源,可以直接应用于游戏项目中。开发者可以通过Unity的动画系统和控制器来操控这些动作,结合场景、逻辑和交互设计,构建出一款...

    tool_tip_dynamics.rar_hammer_impact hammer_it

    It is a matlab code for transfer function of impact hammer test.

    LayaAir+FairyGUI+TypeScript打地鼠游戏LayaAir

    总结来说,利用LayaAir+FairyGUI+TypeScript制作打地鼠游戏,可以充分发挥各自的优势,实现高效、稳定且具有高质量用户体验的游戏开发。开发者可以通过这种方式,结合自己的创意,打造出更多富有乐趣的游戏作品。

    javascript 抓娃娃小游戏H5完整版

    【JavaScript 抓娃娃小游戏H5完整版】是一款基于HTML5、CSS3和JavaScript技术开发的移动端小游戏,适用于Android和iOS设备。此项目采用jQuery库来简化DOM操作,提高代码的可读性和执行效率,旨在为用户带来逼真的...

    安卓模拟打地鼠游戏

    【安卓模拟打地鼠游戏】是一款基于Android平台的趣味性应用程序,主要使用Java语言进行开发。在这款游戏中,玩家需要快速点击出现在屏幕上的地鼠,以此来获得分数,增加了玩家的反应速度和手眼协调能力。游戏的设计...

    Unity3D((4.x5.x)版本游戏源码(4-5.x)极道杀戮最新支持webgFullGameKitHammer2

    根据给定文件的信息,我们可以提炼出以下几个关键知识点: ...此外,“极道杀戮”的游戏源码以及 Full Game Kit Hammer 2 插件都为开发者提供了宝贵的参考和实用工具,有助于提升游戏开发效率和质量。

    Hammer.js分析

    - **游戏开发**: Hammer.js的手势识别功能可以增强游戏的控制感,例如玩家可以通过滑动来操控角色移动。 - **UI组件**: 在构建可触摸的UI组件时,如滑动菜单、轮播图等,Hammer.js能提供更自然的操作方式。 5. **...

    Python打地鼠小游戏源代码

    Python打地鼠小游戏源代码是基于Python编程语言开发的一款经典娱乐项目,旨在重现我们童年时在电玩城体验到的打地鼠游戏的乐趣。通过学习和理解这个游戏的源代码,我们可以深入了解Python编程语言在游戏开发中的应用...

    html移动开发手势缩放(纯干货)(基于hammer velocity)

    本教程将详细介绍如何利用Hammer.js和Velocity.js这两个库来实现在HTML页面上的手势缩放功能,尤其适用于Android和iOS设备。 Hammer.js是一个轻量级的手势库,它提供了丰富的手势识别功能,如滑动、双击、捏合等,...

    Unity3D版本游戏源码2-91极道杀戮最新支持webgFullGameKitHammer2

    91极道杀戮最新支持webgFull Game Kit Hammer 2”是一个包含了许多高级特性的游戏项目,不仅使用了最新的Unity3D版本,还支持了WebGL技术,同时集成了Full Game Kit Hammer 2这一强大的游戏开发工具包。这对于想要...

    打地鼠 WhackAMole 源代码 已在Eclipse上能运行 cocos2d-x.2.2.3

    cocos2d-x是一个开源的、跨平台的2D游戏开发框架,它支持C++语言,并且能够运行在iOS、Android、Windows等多个操作系统上。cocos2d-x 2.2.3是该框架的一个稳定版本,提供了丰富的功能和优化的性能,适合初学者和专业...

    (4-5.x) Hammer 2 最新支持Full Game Kit - Hammer 2 1.1.1

    《Hammer 2 1.1.1:Unity游戏开发中的强大工具》 在游戏开发领域,Unity引擎因其强大的功能和易用性而备受青睐。其中,Hammer 2是针对Unity开发的一款重要辅助工具,尤其在游戏关卡设计和场景构建上展现出了卓越的...

    Hammer Crush 锤子粉碎超Unity休闲格斗街机游戏项目源码C#

    Hammer Crush 锤子粉碎超Unity休闲格斗街机游戏项目源码C# 支持Unity版本2020.3.16f1及以上 Hammer Crush 锤子粉碎是超休闲游戏领域的一股强大力量,以其充满活力的图形和令人上瘾的游戏玩法吸引着玩家。 是关于旋转...

    AppDevToolbox-在一个地方用于Android应用程序开发的工具集合。-Android开发

    一处用于Android应用程序开发的工具集合:hammer:D AppDevToolbox一处用于Android应用程序开发的工具集合。 :hammer:注意:这仍在进行中brings app此应用程序将以下出色的Android开发应用程序整合到了一起。 (感谢...

    Java开发的打地鼠游戏

    【Java开发的打地鼠游戏】是一款经典的编程实践项目,非常适合Java初学者用来提升编程技能。这个游戏基于Java语言,利用了Java丰富的图形用户界面(GUI)库和事件处理机制,展示了面向对象编程的基本原理和实际应用...

    Hammer 软件常用功能说明

    Hammer 软件常用功能说明 Hammer 是一款超站使用的调试工具,与 DebugerShell 都是常用的调试工具,在功能上有很多类似的地方,但是也...Hammer 软件是一款功能强大且灵活的调试工具,对于开发和调试来说非常有用。

Global site tag (gtag.js) - Google Analytics