论坛首页 移动开发技术论坛

Android游戏开发之爆炸效果

浏览 23807 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-09-06  
爆炸这个好像是游戏里面挺难解决的一个问题,如果要真是模拟爆炸的话,大多是预先设好了所有爆炸的画面,当然这个画面是一样的
0 请登录后投票
   发表时间:2009-09-14  
这个方法可行性不高,因为同一时间只有一个动画存在,如果是要多个动画出现,就挂了
0 请登录后投票
   发表时间:2009-09-14  
vlinux 写道
这个方法可行性不高,因为同一时间只有一个动画存在,如果是要多个动画出现,就挂了

使用过多个动画效果同时显示,没性能问题,请问您有没更好的方法,分享一下啦!
0 请登录后投票
   发表时间:2009-09-15   最后修改:2009-09-15
初涉这块领地,也正在努力探索。
分两个思路来讨论一下

1.改进你的方法。
你的的方法是利用Android自带的Frame-By-Frame例子的,缺点就是Android目前依靠配置无法从一张动画序列图中截取部分来显示动画。所以这样就造成了必须准备一张张单独的图片,这对一个游戏拥有大量动作且Android的res目录不支持子目录的情况下来看是不大雅观的。

我用AnimationDrawable稍做了一些改进。


2.直接用SurfaceView开线程画。用线程+SurfaceView无疑是最好的办法了。不过我目前卡死在这里,因为每帧画出的图案就永久生效了。不像之前的Animation是可以重叠,当动画消失之后还原背景。非常令我苦闷,不知道你有没有在SurfaceView做动画的好办法。


  • 大小: 165.8 KB
0 请登录后投票
   发表时间:2009-09-15   最后修改:2009-09-15
raymondlueng 写道
vlinux 写道
这个方法可行性不高,因为同一时间只有一个动画存在,如果是要多个动画出现,就挂了

使用过多个动画效果同时显示,没性能问题,请问您有没更好的方法,分享一下啦!



多个动画效果同时显示,根据你的例子来看,一个动画必须绑定一个View吧。但是爆炸是随机发生的事件。比如说我touch一下屏幕就要有一个爆炸动画出现,如果我在短时间是大量的touch那一个View的劣势就显示出来了。

如果你是打算用动态添加View,那肯定要有性能代价。
0 请登录后投票
   发表时间:2009-09-15  
vlinux 写道
初涉这块领地,也正在努力探索。
分两个思路来讨论一下

1.改进你的方法。
你的的方法是利用Android自带的Frame-By-Frame例子的,缺点就是Android目前依靠配置无法从一张动画序列图中截取部分来显示动画。所以这样就造成了必须准备一张张单独的图片,这对一个游戏拥有大量动作且Android的res目录不支持子目录的情况下来看是不大雅观的。

我用AnimationDrawable稍做了一些改进。


2.直接用SurfaceView开线程画。用线程+SurfaceView无疑是最好的办法了。不过我目前卡死在这里,因为每帧画出的图案就永久生效了。不像之前的Animation是可以重叠,当动画消失之后还原背景。非常令我苦闷,不知道你有没有在SurfaceView做动画的好办法。



我一开始做游戏动画的时候就是用surfaceview+线程来实现的,正如你所说的,动画消失后还要还原背景,在画面上画任何一点东西,都要导致整个画面重画,如果画动画的时候,有用户交换(比如说拖动某个物体,会导致画面闪烁非常严重),似乎这个办法也不是解决之道
0 请登录后投票
   发表时间:2009-09-15  
vlinux 写道
raymondlueng 写道
vlinux 写道
这个方法可行性不高,因为同一时间只有一个动画存在,如果是要多个动画出现,就挂了

使用过多个动画效果同时显示,没性能问题,请问您有没更好的方法,分享一下啦!



多个动画效果同时显示,根据你的例子来看,一个动画必须绑定一个View吧。但是爆炸是随机发生的事件。比如说我touch一下屏幕就要有一个爆炸动画出现,如果我在短时间是大量的touch那一个View的劣势就显示出来了。

如果你是打算用动态添加View,那肯定要有性能代价。

其实也不用的,我这个做法是从flash游戏的开发受启发的,你可以同时隐藏多个view,需要的时候就把其显现出来,大量的touch毕竟也是有些的,View的复用也是蛮高的!
0 请登录后投票
   发表时间:2009-09-15  
不知道你是否有玩过一款叫做  “Buka" 的游戏,你觉得密集touch所产生那群蓝色光晕是多个View的效果么?

多个隐藏View,恩.你是想要做一个隐藏的View池?总觉得这不是一个最好的解决办法的说。
0 请登录后投票
   发表时间:2009-09-15  
vlinux 写道
不知道你是否有玩过一款叫做  “Buka" 的游戏,你觉得密集touch所产生那群蓝色光晕是多个View的效果么?

多个隐藏View,恩.你是想要做一个隐藏的View池?总觉得这不是一个最好的解决办法的说。

玩过Buka,还挺喜欢的,我也的确认为隐藏View做不出Buka这样的游戏,我认为隐藏VIew是对于一些比较简单动画的 游戏,是个方便高效的方法而已,我看了你的代码,代码并不是你说的用SurfaceVIew来实现动画啊!
0 请登录后投票
   发表时间:2009-09-15  
是,那个代码我干掉了,我想完善点再丢上来的。总觉得真相就在手边了。
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics