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