import java.awt.AlphaComposite;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class ImageComposite extends JPanel implements ActionListener {
Image a = new ImageIcon(this.getClass().getResource("a.png")).getImage();
Image b = new ImageIcon(this.getClass().getResource("b.png")).getImage();
Timer timer = new Timer(800, this);
float alpha = 1f;
public ImageComposite() {
timer.start();
}
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
BufferedImage buffImg = new BufferedImage(200, 100, BufferedImage.TYPE_INT_ARGB);
Graphics2D gbi = buffImg.createGraphics();
AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha);
gbi.drawImage(a, 40, 30, null);
gbi.setComposite(ac);
gbi.drawImage(b, 0, 0, null);
g2d.drawImage(buffImg, 20, 20, null);
}
public void actionPerformed(ActionEvent e) {
alpha -= 0.1;
if (alpha <= 0) {
alpha = 0;
timer.stop();
}
repaint();
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.add(new ImageComposite());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 210);
frame.setVisible(true);
}
}
分享到:
相关推荐
在Cocos2d-x中,动画通常由一系列的精灵帧(SpriteFrame)组成,每个精灵帧对应于一个单独的图像(纹理,CCTexture2D)。当我们创建动画时,会基于这些纹理生成精灵帧,并将它们组织成一个动画序列。这样,我们就...
在Android开发中,2D图形和动画是构建用户界面和提升用户体验的重要组成部分。这篇博文"玩转Android---2D图形及动画---Frame动画"显然会深入探讨如何在Android平台上创建和管理帧动画。帧动画是一种将一系列静态图像...
【基于canvas的粒子组成文字动画特效】是一种利用HTML5的核心技术Canvas实现的视觉效果。Canvas是HTML5中用于绘制2D图形的API,允许开发者在网页上动态渲染图像。在这个特效中,粒子由无数个小点构成,通过...
帧动画由一系列有序的静态图片组成,这些图片按照一定的顺序和时间间隔快速切换,形成视觉上的连续运动。例如,一个简单的行走动画可能包括从左到右连续的脚部移动帧。当这些帧以适当的速率连续播放时,我们就能看到...
UI是用户与软件交互的窗口,而动画元素则是UI设计中的重要组成部分。UIAnimation可能包含了不同浏览模式的实现代码、动画效果的资源文件(如精灵图、动画序列帧)以及相关配置文件。开发者可能使用了诸如Cocos2d-x、...
怪物的站立动画通常由一系列静态帧组成,这些帧可以通过精灵帧动画(SpriteFrameAnimation)来实现连续播放,从而创建出动态效果。 1. **创建精灵和精灵帧** - 使用`Sprite::createWithSpriteFrameName`或`Sprite:...
在cocos2d-x中,动画是由一系列的精灵帧(SpriteFrames)组成的。为了将GIF转换为帧动画,我们需要创建这些帧,并将它们添加到一个帧动画序列中。每个精灵帧包含精灵的图像、裁剪区域和持续时间信息。 3. **帧缓存...
在这个项目中,游戏中的鱼类、炮弹、背景等可能都是由精灵图片组成,通过Sprite Renderer组件进行渲染。 2. **游戏对象和组件**:Unity3D中的每个游戏元素都是一个GameObject,包含各种组件,如Transform(用于位置...
3. **精灵(Sprite)**:精灵是2D游戏中的基本图形元素,可以是静态图片或动画序列。Cocos2d提供了强大的精灵管理,包括旋转、缩放、移动和透明度控制。 4. **动作(Actions)**:Cocos2d的动作系统允许开发者定义...
3. 精灵(Sprite):精灵是游戏中的基本图形元素,可以是静态图片或动画序列。 4. 动画(Animation):通过帧序列和时间间隔实现精灵的动态效果。 5. 路径(Path):用于精灵或其他对象沿预定义路径移动。 三、Lua...
本示例主要讲解如何在cocos2d-x环境中播放Flash序列帧动画,这对于创建动态游戏场景和角色动作至关重要。 首先,我们需要理解序列帧动画的概念。序列帧动画是通过连续播放一系列静态图像来实现动态效果,这些图像...
2D文字是基于二维平面的文本,通常由字体、大小、颜色和布局组成,而3D图像则引入了深度维度,使得图像看起来有立体感,可以进行旋转、缩放等操作,增加视觉冲击力。将2D文字转化为3D图像粒子效果,意味着将静态的...
Cocos2d是一个多层次、模块化的框架,主要由以下几个部分组成: - **渲染引擎**:提供2D图形绘制,支持精灵、图层、场景、动作和动画等元素。 - **物理引擎**:如Box2D或Chipmunk,用于模拟物体的碰撞和运动。 - **...
Unity 2D Toolkit是Unity引擎的一个重要组成部分,专为2D游戏开发而设计。随着3D技术的普及,Unity并没有忽视2D领域的开发者,而是推出了这个工具包来满足2D项目的需求。Unity 3D虽然以3D渲染和交互为核心,但通过2D...
2. **Tile Set**:每个TMX地图由一系列的Tile Set组成,每个Tile Set包含多个图片,这些图片可以组合成不同的地图块。在Cocos2d-x中,`cocos2d::TMXTilesetInfo`表示一个Tile Set。 3. **Layers and Objects**:...
3. **精灵(Sprite)**:`Sprite`类是AndEngine中表示2D动画的基本元素。它包含了对`TextureRegion`的引用,以及位置、旋转和缩放等属性。 4. **动画(Animation)**:AndEngine的`Animation`类用于管理精灵的帧...
事件处理是Cocos2d-X中的重要组成部分。你将学习如何监听并响应用户输入,如触摸和键盘事件,以及如何实现游戏逻辑和交互。Cocos2d-X提供了一套简洁的事件系统,使得开发者可以方便地管理事件流。 在脚本语言方面,...
通过打开这个FLA文件,我们可以查看和编辑动画的各个组成部分,包括图片的3D变换参数和动画的帧速率。 ActionScript是Flash中的编程语言,用于控制动画行为和交互。在这个环绕立体效果中,可能有ActionScript代码...
cocos2d-x提供了一系列绘图函数,如绘制矩形、圆形、线条,以及加载图片、精灵等。通过动作(Action)和动画(Animation),可以实现物体的移动、旋转、缩放等效果。同时,还可以使用Tiled Map编辑器创建复杂的地图...
1. **场景和层(Scenes and Layers)**:Cocos2D中的场景是游戏的主要组成部分,包含了游戏的所有视觉元素。层是场景的子组件,用于组织游戏的不同部分,如游戏界面、菜单系统等。在连连看游戏中,可能有一个主游戏...