1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
package tsukuba_bunko.peko.canvas.stage.effect; |
10 |
|
|
11 |
|
import java.awt.AlphaComposite; |
12 |
|
import java.awt.Graphics2D; |
13 |
|
|
14 |
|
import java.awt.image.BufferedImage; |
15 |
|
import java.awt.image.ImageObserver; |
16 |
|
|
17 |
|
import tsukuba_bunko.peko.canvas.stage.Effect; |
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
|
22 |
|
|
23 |
|
|
24 |
|
|
25 |
|
public class MofingEffect extends Effect { |
26 |
|
|
27 |
|
|
28 |
|
|
29 |
|
|
30 |
0 |
private static AlphaComposite[] _composites = new AlphaComposite[5]; |
31 |
|
static { |
32 |
0 |
_composites[4] = AlphaComposite.SrcOver; |
33 |
0 |
_composites[3] = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.8f ); |
34 |
0 |
_composites[2] = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f ); |
35 |
0 |
_composites[1] = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.2f ); |
36 |
0 |
_composites[0] = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.1f ); |
37 |
0 |
} |
38 |
|
|
39 |
|
|
40 |
|
|
41 |
|
|
42 |
|
|
43 |
|
public MofingEffect() |
44 |
|
{ |
45 |
0 |
super(); |
46 |
0 |
} |
47 |
|
|
48 |
|
|
49 |
|
|
50 |
|
|
51 |
|
|
52 |
|
|
53 |
|
public String getName() |
54 |
|
{ |
55 |
0 |
return "mofing"; |
56 |
|
} |
57 |
|
|
58 |
|
|
59 |
|
|
60 |
|
|
61 |
|
protected void perform( BufferedImage screen, BufferedImage next ) |
62 |
|
{ |
63 |
0 |
ImageObserver observer = getStageCanvas(); |
64 |
|
|
65 |
0 |
Graphics2D g2 = screen.createGraphics(); |
66 |
0 |
AlphaComposite[] composites = _composites; |
67 |
0 |
int size = composites.length; |
68 |
0 |
for( int i = 0; i < size; ++i ) { |
69 |
0 |
g2.setComposite( composites[i] ); |
70 |
0 |
g2.drawImage( next, 0, 0, observer ); |
71 |
0 |
drawImage( screen ); |
72 |
|
} |
73 |
0 |
} |
74 |
|
} |