Mercurial > hg > ristipolku
comparison game/AnimatedPointElement.java @ 127:e60b4885eafe
Fix the AnimatedPointElement class to actually work.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 24 Nov 2011 21:09:04 +0200 |
parents | 054dd486ea84 |
children | a0376e40102e |
comparison
equal
deleted
inserted
replaced
126:c4d0ceec99ef | 127:e60b4885eafe |
---|---|
10 import java.math.*; | 10 import java.math.*; |
11 | 11 |
12 | 12 |
13 public class AnimatedPointElement | 13 public class AnimatedPointElement |
14 { | 14 { |
15 float stime, value; | 15 private float stime, value, steps; |
16 IDMPoint pos; | 16 private IDMPoint pos; |
17 Interpolate lerpV, lerpX, lerpY; | 17 private Interpolate lerpV, lerpX, lerpY; |
18 boolean active, first; | 18 boolean active, first; |
19 String text; | 19 String text; |
20 | 20 |
21 public AnimatedPointElement(IDMPoint p0, IDMPoint p1, float steps, String text) | 21 public AnimatedPointElement(IDMPoint start, String text) |
22 { | 22 { |
23 lerpX = new Interpolate(p0.x, p1.x, steps); | 23 Random rnd = new Random(); |
24 lerpY = new Interpolate(p0.y, p1.y, steps); | 24 steps = 100; |
25 lerpV = new Interpolate(1, 0, steps); | 25 lerpX = new Interpolate(start.x - rnd.nextInt(100) + 50, start.x, steps); |
26 lerpY = new Interpolate(start.y - rnd.nextInt(100) + 50, start.y, steps); | |
27 lerpV = new Interpolate(0.0f, 1.0f, steps); | |
26 | 28 |
27 | 29 |
28 System.out.print("AnimatedPointElement("+ p0 +", "+p1+", "+ steps +", '"+ text +"')\n"); | 30 pos = new IDMPoint(start); |
29 System.out.print("lerpX="+lerpX+"\n"); | |
30 | |
31 active = false; | 31 active = false; |
32 first = true; | 32 first = true; |
33 this.text = text; | 33 this.text = text; |
34 } | 34 } |
35 | 35 |
42 stime = time; | 42 stime = time; |
43 } | 43 } |
44 | 44 |
45 if (active) | 45 if (active) |
46 { | 46 { |
47 float t = (time - stime) / 10.0f; | 47 float t = (time - stime); |
48 if (t >= 1.0f) | 48 if (t >= steps) |
49 { | 49 { |
50 t = 1.0f; | 50 t = steps; |
51 active = false; | 51 active = false; |
52 } | 52 } |
53 | 53 |
54 value = lerpV.getValue(t); | 54 value = lerpV.getValue(t); |
55 pos.x = lerpX.getValue(t); | 55 pos.x = lerpX.getValue(t); |
65 Paint psave = g.getPaint(); | 65 Paint psave = g.getPaint(); |
66 AffineTransform tsave = g.getTransform(); | 66 AffineTransform tsave = g.getTransform(); |
67 Composite csave = g.getComposite(); | 67 Composite csave = g.getComposite(); |
68 | 68 |
69 // g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, typeValue)); | 69 // g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, typeValue)); |
70 g.setFont(G.fonts[0]); | 70 g.setFont(G.fonts[2]); |
71 g.setPaint(new Color(1.0f, 1.0f, 1.0f, value)); | 71 g.setPaint(new Color(value, value, value, value)); |
72 g.drawString(text, pos.x, pos.y); | 72 g.drawString(text, pos.x, pos.y); |
73 | 73 |
74 g.setTransform(tsave); | 74 g.setTransform(tsave); |
75 g.setComposite(csave); | 75 g.setComposite(csave); |
76 g.setPaint(psave); | 76 g.setPaint(psave); |
77 } | 77 } |