comparison src/AnimatedPointElement.java @ 161:fb33d3796942

Rename source directory.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 21 Jun 2016 12:53:53 +0300
parents game/AnimatedPointElement.java@d6d92845d6a2
children
comparison
equal deleted inserted replaced
160:d5fbad999841 161:fb33d3796942
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 private float stime, value, steps;
16 private IDMPoint pos;
17 private Interpolate lerpV, lerpX, lerpY;
18 boolean active, first;
19 String text;
20
21 public AnimatedPointElement(IDMPoint start, String text)
22 {
23 Random rnd = new Random();
24 steps = 100;
25
26 lerpX = new Interpolate(start.x - rnd.nextInt(100) + 50, start.x, steps);
27 lerpY = new Interpolate(start.y - rnd.nextInt(100) + 50, start.y, steps);
28 lerpV = new Interpolate(0.0f, 1.0f, steps);
29
30 pos = new IDMPoint(start);
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);
48 if (t >= steps)
49 {
50 t = steps;
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
68 g.setFont(G.fonts[2]);
69 g.setPaint(new Color(value, value, value, value));
70 g.drawString(text, pos.x, pos.y);
71
72 // g.setTransform(tsave);
73 g.setPaint(psave);
74 }
75 }