Selaa lähdekoodia

added isPressed/isReleased indicators

ncannasse 7 vuotta sitten
vanhempi
commit
0719731f22
1 muutettua tiedostoa jossa 24 lisäystä ja 4 poistoa
  1. 24 4
      samples/Pad.hx

+ 24 - 4
samples/Pad.hx

@@ -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 );