|
@@ -56,7 +56,7 @@ class PadUI extends h2d.Sprite {
|
|
|
var lt : h2d.Graphics;
|
|
|
var rt : h2d.Graphics;
|
|
|
|
|
|
- var buttons : Map<String,h2d.Text>;
|
|
|
+ var buttons : Map<String,{ tf : h2d.Text, bg : h2d.Bitmap }>;
|
|
|
|
|
|
var pad : hxd.Pad;
|
|
|
|
|
@@ -116,7 +116,11 @@ class PadUI extends h2d.Sprite {
|
|
|
t.y = 140;
|
|
|
t.text = n;
|
|
|
t.alpha = 0.1;
|
|
|
- buttons.set(n,t);
|
|
|
+ var bg = new h2d.Bitmap(h2d.Tile.fromColor(0xFFFFFF, t.textWidth, 8), t);
|
|
|
+ bg.y = 10;
|
|
|
+ bg.alpha = 0;
|
|
|
+ buttons.set(n, { tf : t, bg : bg });
|
|
|
+
|
|
|
x += t.textWidth;
|
|
|
}
|
|
|
}
|
|
@@ -138,8 +142,24 @@ class PadUI extends h2d.Sprite {
|
|
|
lt.scaleY = -pad.values[ conf.LT ];
|
|
|
rt.scaleY = -pad.values[ conf.RT ];
|
|
|
|
|
|
- for( k in buttons.keys() )
|
|
|
- buttons[k].alpha = 0.3 + (pad.buttons[ Reflect.field(conf,k) ] ? 0.7 : 0);
|
|
|
+ for( k in buttons.keys() ) {
|
|
|
+ var bid = Reflect.field(conf, k);
|
|
|
+ var but = buttons[k];
|
|
|
+ but.tf.alpha = 0.3 + (pad.buttons[bid] ? 0.7 : 0);
|
|
|
+
|
|
|
+ if( pad.buttons[bid] != pad.isDown(bid) )
|
|
|
+ throw "Button " + bid + " = " + pad.buttons[bid] + " but isDown = " + pad.isDown(bid);
|
|
|
+
|
|
|
+ var bg = but.bg;
|
|
|
+ if( pad.isPressed(bid) ) {
|
|
|
+ bg.alpha = 1;
|
|
|
+ bg.color.setColor(0xFF00FF00);
|
|
|
+ } else if( pad.isReleased(bid) ) {
|
|
|
+ bg.alpha = 1;
|
|
|
+ bg.color.setColor(0xFFFF0000);
|
|
|
+ } else if( bg.alpha > 0 )
|
|
|
+ bg.alpha -= 0.05;
|
|
|
+ }
|
|
|
|
|
|
if( !wasPressed && pad.isDown(conf.A) && pad.values[conf.LT] > 0 && pad.values[conf.RT] > 0 )
|
|
|
pad.rumble( pad.values[conf.LT], pad.values[conf.RT]*0.5 );
|