Android游戏开发:如何实现爆炸效果

在做Android游戏MagicBubble开发的时候,在连通两个Bubbles的时候,Bubble会以水泡爆破的情形消失。笔者的思路是这样的:在FrameLayout里面加入一ImageView,再定义一个爆炸的Animation,不需要的时候,ImageView就隐藏起来,需要的时候,就把ImageView移动到需要的地方,再StartAnimation,这样,就可以实现爆炸效果。

成都创新互联公司主营宜昌网站建设的网络公司,主营网站建设方案,手机APP定制开发,宜昌h5重庆小程序开发搭建,宜昌网站营销推广欢迎宜昌等地区企业咨询

下面是简化后的程序的代码,程序的效果如下:点中屏幕中任意地方,就在点击地方显示爆炸效果。

首先是Animation的定义,定义一个Frame Animation,依次播放5帧动画,每帧动画持续时间为50毫秒:

 
 
 
 
  1. android:oneshot="true">  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.   

接着是主程序代码:

 
 
 
 
  1. package com.ray.bubble;  
  2. import android.app.Activity;  
  3. import android.content.Context;  
  4. import android.graphics.drawable.AnimationDrawable;  
  5. import android.os.Bundle;  
  6. import android.view.MotionEvent;  
  7. import android.view.View;  
  8. import android.view.Window;  
  9. import android.view.WindowManager;  
  10. import android.view.View.OnTouchListener;  
  11. import android.widget.FrameLayout;  
  12. import android.widget.ImageView;  
  13. public class BubbleExplosion extends Activity {  
  14. private FrameLayout fl;  
  15. private ExplosionView exv1;  
  16. private AnimationDrawable exa1;  
  17. public void onCreate(Bundle savedInstanceState) {  
  18. super.onCreate(savedInstanceState);  
  19. //set full screen  
  20. requestWindowFeature(Window.FEATURE_NO_TITLE);  
  21. getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,  
  22. WindowManager.LayoutParams. FLAG_FULLSCREEN);  
  23. fl = new FrameLayout(this);  
  24. fl.setBackgroundResource(R.drawable.bg);  
  25. exv1 = new ExplosionView(this);  
  26. exv1.setVisibility(View.INVISIBLE);  
  27. exv1.setBackgroundResource(R.anim.explosion);  
  28. exa1 = (AnimationDrawable)exv1.getBackground();  
  29. fl.addView(exv1);  
  30. fl.setOnTouchListener(new LayoutListener());  
  31. setContentView(fl);  
  32. }  
  33. class ExplosionView extends ImageView{  
  34. public ExplosionView(Context context) {  
  35. super(context);  
  36. }  
  37. // 处理爆炸的位置  
  38. public void setLocation(int top,int left){  
  39. this.setFrame(left, top, left+40, top+40);  
  40. }  
  41. }  
  42. class LayoutListener implements OnTouchListener{  
  43. public boolean onTouch(View v, MotionEvent event) {  
  44. //首先,你必须停止播放动画,如果动画开始,你不能重复一遍!  
  45. exv1.setVisibility(View.INVISIBLE);  
  46. exa1.stop();  
  47. float x = event.getX();  
  48. float y = event.getY();  
  49. exv1.setLocation((int)y-20, (int)x-20);  
  50. exv1.setVisibility(View.VISIBLE);  
  51. exa1.start();  
  52. return false;  
  53. }  
  54. }  
  55. }  

配合Android的SurfaceView,Animation可以实现很好的过渡效果,SurfaceView的用法很简单。

【编辑推荐】

  1. GameSalad:让每个人都变成游戏开发者
  2. Android平台将迎来虚幻引擎游戏开发时代
  3. 国外知名游戏开发商称Android平台比iOS更赚钱
  4. 独立手机游戏开发者的未来走向
  5. 高效地进行Android 游戏开发

网站名称:Android游戏开发:如何实现爆炸效果
本文URL:http://www.shufengxianlan.com/qtweb/news13/522713.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联