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 }