}
这个 first 的作用就看出来了。
好,接下来是重点,怎样显示图片。重点在于处理透明 ,而我也只用短短两段代码完成核心功能:
其中红色的代码是对图片做透明处理,你可以复制粘贴使用:
((Graphics2D) g).setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));
g.drawImage(imgs1[step], x - 46, y - 59, null);
((Graphics2D) g).setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
这之前要先声明 :float alpha = 0.7f; // 透明度
要做出我那样酷的动画还有几个细节要注意,我这里也一并解释一下:首先,看到我这里的代码分城了两部分,来针对我的炮筒方向不同绘制我翅膀不同的方向,就是最外层的 if。
其次, step++ 完成了所有动画逐帧播放的功能。
但最后发现,这样,翅膀动的太快了,动画不柔顺,所以加入ii,ii=5,表示每播5帧我翅膀才动一下,不过这个肉眼根本感受不出来,最后看到的却是柔顺的效果,这里,ii 的取值要由你的帧速来决定,我是5就OK了,关键是要能想到这样去处理。
最后说说关于炮弹的变色是怎样做到的?
我把炮弹放大,可以看到
炮弹的最外层有一层透明的红色,核心就在于你要使用这样一层透明的颜色,并且把她保存成 png 格式。当很多炮弹重叠的时候,效果就出来了。
好了,结合我上一篇波纹“
关于awt 不实用第三方类库 实现 图片旋转,变形等处理”,相信你对 java制作游戏和动画又有了一些信心。有人说了,我有CCSprit
我何必这么累??当然我现在说的是java。