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