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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }