forked from volticgames/game-prototype-base
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEnergyBar.as
61 lines (47 loc) · 1.66 KB
/
EnergyBar.as
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/**
* Created by Ben on 2/04/2016.
*/
package {
import net.flashpunk.Graphic;
import net.flashpunk.Mask;
import net.flashpunk.graphics.Image;
import net.flashpunk.utils.Draw;
import net.flashpunk.utils.Ease;
import volticpunk.entities.VEntity;
public class EnergyBar extends VEntity {
private var barWidth: Number = 620;
private var barHeight: Number = 16;
private var max: Number = 100;
private var min: Number = 0;
private var value: Number = 100;
public var displayedValue: Number = 100;
public function EnergyBar(x: Number = 0, y: Number = 0) {
super(x, y);
}
public function getMax(): Number {
return max;
}
public function add(amount: Number): void {
set(value + amount);
}
public function remove(amount: Number): void {
set(value - amount);
}
public function set(amount: Number): void {
value = amount;
getTweener().tween(this, {displayedValue: amount}, 0.5, Ease.quadOut);
}
public function getPercentage(): Number {
return (value - min) / max;
}
public function getDisplayPercentage(): Number {
return (displayedValue - min) / max;
}
override public function render(): void {
super.render();
Draw.rect(x, y, barWidth, barHeight, 0x333333);
Draw.rect(x, y, barWidth * getDisplayPercentage(), barHeight, 0xFFC800);
Draw.rect(x + barWidth * getDisplayPercentage(), y, Math.abs(value - displayedValue), barHeight, 0xFFFFFF);
}
}
}