Mercurial > hg > ristipolku
annotate game/AnimatedPointElement.java @ 125:054dd486ea84
Add animated point element class.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 24 Nov 2011 19:46:09 +0200 |
parents | |
children | e60b4885eafe |
rev | line source |
---|---|
125
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
1 /* |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
2 * Ristipolku animated game element |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
3 * (C) Copyright 2011 Matti 'ccr' Hämäläinen <ccr@tnsp.org> |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
4 */ |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
5 package game; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
6 |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
7 import java.awt.*; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
8 import java.awt.geom.*; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
9 import java.util.*; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
10 import java.math.*; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
11 |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
12 |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
13 public class AnimatedPointElement |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
14 { |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
15 float stime, value; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
16 IDMPoint pos; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
17 Interpolate lerpV, lerpX, lerpY; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
18 boolean active, first; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
19 String text; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
20 |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
21 public AnimatedPointElement(IDMPoint p0, IDMPoint p1, float steps, String text) |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
22 { |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
23 lerpX = new Interpolate(p0.x, p1.x, steps); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
24 lerpY = new Interpolate(p0.y, p1.y, steps); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
25 lerpV = new Interpolate(1, 0, steps); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
26 |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
27 |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
28 System.out.print("AnimatedPointElement("+ p0 +", "+p1+", "+ steps +", '"+ text +"')\n"); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
29 System.out.print("lerpX="+lerpX+"\n"); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
30 |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
31 active = false; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
32 first = true; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
33 this.text = text; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
34 } |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
35 |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
36 public void animate(float time) |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
37 { |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
38 if (first) |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
39 { |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
40 first = false; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
41 active = true; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
42 stime = time; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
43 } |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
44 |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
45 if (active) |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
46 { |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
47 float t = (time - stime) / 10.0f; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
48 if (t >= 1.0f) |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
49 { |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
50 t = 1.0f; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
51 active = false; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
52 } |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
53 |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
54 value = lerpV.getValue(t); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
55 pos.x = lerpX.getValue(t); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
56 pos.y = lerpY.getValue(t); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
57 } |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
58 } |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
59 |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
60 public void paint(Graphics2D g) |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
61 { |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
62 if (!active) |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
63 return; |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
64 |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
65 Paint psave = g.getPaint(); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
66 AffineTransform tsave = g.getTransform(); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
67 Composite csave = g.getComposite(); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
68 |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
69 // g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, typeValue)); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
70 g.setFont(G.fonts[0]); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
71 g.setPaint(new Color(1.0f, 1.0f, 1.0f, value)); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
72 g.drawString(text, pos.x, pos.y); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
73 |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
74 g.setTransform(tsave); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
75 g.setComposite(csave); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
76 g.setPaint(psave); |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
77 } |
054dd486ea84
Add animated point element class.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
78 } |