- 浏览: 579802 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
hxlniada:
[color=darkred][/color][size=sm ...
利用Handler来更新android的UI -
jack_ye:
...
检测Android中触摸屏手势的动作与坐标 -
z278013421:
Android Services使用示例 -
东方vs不败:
写的不错,挺好的
利用Handler来更新android的UI -
liangxping:
就是双缓存机制而已。
Android中SurfaceView的使用示例
在做Android游戏MagicBubble开发的时候,在连通两个Bubbles的时候,Bubble会以水泡爆破的情形消失。为了实现这一效果,我查找了不少资料,希望能找到一些标准的实现方面,花了不少时间,发觉Android关于游戏开发的资料实在太少了,更不用说标准做法了,没办法,只能按照自己的思路来实现这一效果。
我的思路是这样的(仅供参考,希望有更好做法的朋友跟我们共享一下):在FrameLayout里面加入一ImageView,再定义一个爆炸的Animation,不需要的时候,ImageView就隐藏起来,需要的时候,就把ImageView移动到需要的地方,再StartAnimation,这样,就可以实现爆炸的效果。
下面是简化后的程序的代码,程序的效果如下:点中屏幕中任意地方,就在点击地方显示爆炸效果。
首先是Animation的定义,定义一个Frame Animation,依次播放5帧动画,每帧动画持续时间为50毫秒:
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> <item android:drawable="@drawable/explode1" android:duration="50" /> <item android:drawable="@drawable/explode2" android:duration="50" /> <item android:drawable="@drawable/explode3" android:duration="50" /> <item android:drawable="@drawable/explode4" android:duration="50" /> <item android:drawable="@drawable/explode5" android:duration="50" /> </animation-list>
接着是主程序代码:
package com.ray.bubble; import android.app.Activity; import android.content.Context; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.view.View.OnTouchListener; import android.widget.FrameLayout; import android.widget.ImageView; public class BubbleExplosion extends Activity { private FrameLayout fl; private ExplosionView exv1; private AnimationDrawable exa1; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //set full screen requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN , WindowManager.LayoutParams. FLAG_FULLSCREEN); fl = new FrameLayout(this); fl.setBackgroundResource(R.drawable.bg); exv1 = new ExplosionView(this); exv1.setVisibility(View.INVISIBLE); exv1.setBackgroundResource(R.anim.explosion); exa1 = (AnimationDrawable)exv1.getBackground(); fl.addView(exv1); fl.setOnTouchListener(new LayoutListener()); setContentView(fl); } class ExplosionView extends ImageView{ public ExplosionView(Context context) { super(context); } //handle the location of the explosion public void setLocation(int top,int left){ this.setFrame(left, top, left+40, top+40); } } class LayoutListener implements OnTouchListener{ public boolean onTouch(View v, MotionEvent event) { //firstly, u have to stop the animation,if the animation //is starting ,u can not start it again! exv1.setVisibility(View.INVISIBLE); exa1.stop(); float x = event.getX(); float y = event.getY(); exv1.setLocation((int)y-20, (int)x-20); exv1.setVisibility(View.VISIBLE); exa1.start(); return false; } } }
配合Android的SurfaceView,Animation可以实现很好的过渡效果,SurfaceView的用法很简单,可参考:
http://rayleung.iteye.com/blog/420410
- BubbleExplosion.rar (163.5 KB)
- 下载次数: 2914
评论
10 楼
lbqxl0122
2009-09-04
学习了,,最近刚开始学习android
9 楼
gtman
2009-09-04
能不能加点的接触判断,如果点重合,从重合点处开始破裂...
8 楼
yuankai
2009-09-03
raymondlueng 写道
kombest 写道
挺好,可2个物体碰撞相互裂开爆炸怎么实现呢,假如物体形状是随机产生的
这个就值得研究一下了,不知道有没朋友有好的想法?
是不是要把单个问题当做一个正方形,然后看2个物体的4个面有没有重叠,如果有重叠就爆炸???
7 楼
raymondlueng
2009-09-03
lordhong 写道
raymondlueng 写道
kombest 写道
挺好,可2个物体碰撞相互裂开爆炸怎么实现呢,假如物体形状是随机产生的
这个就值得研究一下了,不知道有没朋友有好的想法?
谢谢分享!
如果是ImageView或者UI View的话, 可以试下View.getHitRect(Rect outRect)
如果是不规则形状的话, 貌似就麻烦了..
lord老大客气了,老大的文章写得很好,学到很多东西!
6 楼
lordhong
2009-09-03
raymondlueng 写道
kombest 写道
挺好,可2个物体碰撞相互裂开爆炸怎么实现呢,假如物体形状是随机产生的
这个就值得研究一下了,不知道有没朋友有好的想法?
谢谢分享!
如果是ImageView或者UI View的话, 可以试下View.getHitRect(Rect outRect)
如果是不规则形状的话, 貌似就麻烦了..
5 楼
raymondlueng
2009-09-02
neverland 写道
研究了一下你的代码,学到不少东西,感谢分享。
不客气,互相学习!
4 楼
neverland
2009-09-02
研究了一下你的代码,学到不少东西,感谢分享。
3 楼
raymondlueng
2009-09-02
kombest 写道
挺好,可2个物体碰撞相互裂开爆炸怎么实现呢,假如物体形状是随机产生的
这个就值得研究一下了,不知道有没朋友有好的想法?
2 楼
kombest
2009-09-02
挺好,可2个物体碰撞相互裂开爆炸怎么实现呢,假如物体形状是随机产生的
1 楼
挪威的幽灵
2009-09-02
想法可行。。。。
发表评论
-
类似Chome的翻转效果
2012-09-18 23:14 2412简单的demo,屏幕上下滑动翻转View,类似Android ... -
3D编程基础数学之旋转及在Android中的应用
2012-02-10 00:11 0最近因为兴趣,看了一些3D编程的书,有种感觉就是写这些书的作者 ... -
Android中屏幕Density对BitmapDrawable的影响
2011-07-08 21:44 7905很早之前写的文章了,发在这里记录一下。 在之前的 ... -
Android程序与Javascript的交换
2010-04-16 21:40 0hello! -
Android Services使用示例
2010-01-12 16:50 14143Android开发中,当需要创建在后台运行的程序的时候,就要 ... -
Android游戏开发之服务器端
2010-01-09 16:38 6721首先我不知道这篇文章发到Android开发板块是否适合的,因为 ... -
Android ListView常用用法
2009-12-03 20:56 36749ListView是比较常用的控件,但一直都觉得创建ListVi ... -
Android View添加 Listener 小技巧示例
2009-12-02 15:35 9873在开发中为控件添加Listener是非常常见的工作,最简单的添 ... -
Android Gesture 手势识别使用实例
2009-10-20 11:56 10217很高兴能在Android1.6的sdk看到手势识别这一 ... -
Android第二个游戏 DragonFeed(勇者喂恶龙)
2009-10-12 17:57 8119这是参加学校一个小比赛的参赛游戏,之前一直在忙 认证考试和项目 ... -
Android 震动示例--心跳效果
2009-10-02 23:58 7719正在开发第二个游戏,计时就要结束的时候,为了营造紧张的气氛, ... -
Android adb的使用略解
2009-09-30 16:08 40288安卓网的一个帖子,写得不错,记下来 ADB全称Android ... -
Android游戏开发之连连看算法
2009-09-29 00:36 10481因为有朋友在站内信中问到连连看的具体算法,所以我就把算法pos ... -
android游戏开发之选关画面
2009-09-21 15:44 4056在游戏开发中,往往要提供选关的页面,选择关卡可以简单地使用li ... -
Android重力感应Demo
2009-09-11 23:33 14083android中的很多游戏的游戏都使用了重力感应的技术,但其a ... -
Android 的第一个游戏
2009-08-18 08:48 8022学了android1个多月,做了一款连连看游戏,上了andro ... -
Android canvas的save()和restore()用法
2009-08-05 12:21 19930在读Android SDK里面的samples里面游戏的时候, ... -
Android 2d物理引擎Box2d的使用示例
2009-08-04 09:06 14299Box2d是一个很出名的2d物理引擎,大家可以google之。 ... -
利用Handler更新Android UI的另一种方法
2009-07-29 11:28 11922文字程序很简单,一个View,一个Activity,利用han ... -
android布局学习利器-Hierarchy Viewer
2009-07-27 18:17 8150Hierarchy Viewer 帮你分析应用程序UI布局 ...
相关推荐
在Android游戏开发领域,"飞机大战怪兽"是一个常见的入门级项目,非常适合初学者学习。这个例子通过构建一个简单的2D游戏,展示了Android游戏开发的基本流程和技术要点。下面我们将详细探讨其中涉及的知识点。 首先...
在Android应用开发中,视觉效果往往能够提升用户体验,其中粒子爆炸效果是一种常见且吸引人的动态效果,常用于游戏、动画或者界面过渡等场景。本文将深入探讨如何在Android Studio中实现这种效果,以及如何利用提供...
本资源"Android游戏开发之飞行射击类游戏原理实现源码"提供了一个深入学习和实践此类游戏开发的宝贵机会。下面我们将探讨飞行射击类游戏的关键技术和实现步骤。 首先,游戏的核心是游戏循环(Game Loop)。游戏循环...
《Android炸弹爆炸游戏开发详解》 在Android平台上,游戏开发是一项充满挑战与乐趣的任务,尤其是一款结合了帧动画、补间动画以及音效的游戏——"android炸弹爆炸游戏"。这款游戏展示了Android开发中的多个核心知识...
【Android小游戏源码】是一个适合初学者学习的项目,它基于Eclipse开发...这个源码项目是实践和学习Android游戏开发的宝贵资源,不仅可以帮助初学者掌握基本技能,还能激发他们进一步探索更复杂的Android游戏开发技术。
在Android游戏开发中,模拟粒子系统是一个非常关键的技能,它能够为游戏带来生动的视觉效果,如火焰、烟雾、水波、爆炸等。粒子系统通过生成大量小图形(粒子)并控制它们的行为,来模拟复杂的动态效果,极大地提升...
在Android平台上,开发3D游戏是一项复杂而富有挑战性的任务,...通过学习这些章节,开发者不仅可以掌握创建3D游戏的基本技能,还能深入了解Android游戏开发的高级技巧,为创建更丰富、更具沉浸感的游戏体验奠定基础。
源代码的提供对于学习Android游戏开发的开发者或者对游戏编程感兴趣的爱好者来说,是一份宝贵的参考资料。接下来,我们将深入探讨这款游戏中涉及的关键技术和知识点。 1. **Android游戏开发基础**: - **Android ...
首先,我们要明确Android游戏开发的核心是利用Java或Kotlin语言,并结合Android SDK中的游戏开发工具和库,如Android Studio、OpenGL ES等。在这个项目中,我们可能看到的主要文件和组件包括: 1. **主Activity**:...
总结,通过分析"泡泡大作战"的源码,开发者不仅可以掌握Android游戏开发的基本技巧,还能深入了解游戏逻辑、UI设计、数据管理、性能优化等多个方面。这是一份宝贵的实践资料,对提升Android游戏开发能力大有裨益。在...
在Android游戏开发中,爆炸效果是增强用户体验、提升游戏沉浸感的重要元素,特别是在动作、冒险或者策略类游戏中。 首先,我们来了解一下爆炸效果的基本组成部分。一个逼真的爆炸效果通常由以下几个要素构成: 1. ...
在Android平台上开发一款打飞机游戏是一项综合性的任务,涉及到许多技术层面和设计原则。下面将详细阐述这个过程中可能涉及的关键知识点。 首先,我们要了解Android...同时,持续学习和实践是提升游戏开发技能的关键。
这个项目是Android应用开发中的一个经典案例,可以帮助初学者深入理解Android游戏开发的基本原理和技术栈。下面将详细探讨这款游戏中涉及的关键知识点。 1. **Android SDK和Eclipse IDE**:Android SDK是Android...
《AndEngineExamples-GLES2》是针对Android游戏开发的一个开源示例库,它基于OpenGL ES 2.0,是Android平台上进行2D游戏开发的重要工具。这个资源集合为初学者提供了一个良好的学习平台,帮助他们理解和掌握Android...
【Android游戏开发基础】 在Android平台上,游戏开发主要依赖于Java或Kotlin语言,结合Android SDK(Software Development Kit)和Android Studio IDE进行。本压缩包中的"Android游戏源码切水果小游戏有详细注释"是...
10. **测试与发布**:游戏开发完成后,需在多种设备和Android版本上进行测试,确保兼容性。发布前应完成APK签名、版本号管理、权限设置等工作,遵循Google Play的提交规范。 综上所述,开发一个Android平台的飞机小...
4. **游戏框架**:虽然描述中没有提及具体的游戏框架,但通常开发Android游戏时会用到如LibGDX这样的框架。LibGDX提供了丰富的图形、音频和输入处理功能,简化了游戏开发过程。 5. **OpenGL ES**:飞机大战可能使用...
一、Android游戏开发基础 1. Android SDK:Android飞机游戏的开发离不开Android Software Development Kit(SDK),它是Android系统开发的基础工具,包含了编译、调试和部署应用所需的全部组件。开发者需要在...