Mercurial > hg > ristipolku
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 } |