diff --git a/lib/skulpt/microbit/__init__.js b/lib/skulpt/microbit/__init__.js index 179081d..43f1ddc 100644 --- a/lib/skulpt/microbit/__init__.js +++ b/lib/skulpt/microbit/__init__.js @@ -124,11 +124,11 @@ var accelerometer = function(name) { }); mod.get_y = new Sk.builtin.func(function() { - return new Sk.builtin.number(mod.data.y); + return new Sk.builtin.nmber(mod.data.y); }); mod.get_z = new Sk.builtin.func(function() { - return new Sk.builtin.number(mod.data.z); + return new Sk.builtin.nmber(mod.data.z); }); mod.get_values = new Sk.builtin.func(function() { @@ -1424,9 +1424,10 @@ var $builtinmodule = function (name) { html += ' '; html += ''; html += '
'; - html += 'x: 0
'; - html += 'y: 0
'; - html += 'z: 9
'; + html += 'x: 0
'; + html += 'y: 0
'; + html += 'z: 9
'; + html += ''; html += '

Gestures

'; html += 'up'; html += 'down'; @@ -1721,6 +1722,40 @@ var $builtinmodule = function (name) { step: 1, change: sliderChange }).on("slide", sliderChange); + + var accel_mouse_timer = null; + $('#accel_check :checkbox').change(function() { + if (this.checked) { + var mousemove_enabled = false; + const offset = $('#microbit').offset(); + const height = $('#microbit').height(); + const width = $('#microbit').width(); + $('#microbit').mousemove(function (event) { + // debounce + if (!mousemove_enabled) { + return; + } + // Micro:bit accel values are +/- 2000, let's do half for sensitivity + const x = ((event.pageX - offset.left) / width) * 2000 - 1000; + const y = ((event.pageY - offset.top) / height) * 2000 - 1000; + mod.accelerometer.$d.data.x = x; + mod.accelerometer.$d.data.y = y; + + $('#mb_acc_slider_x').slider('value', x); + $('#mb_acc_slider_y').slider('value', y); + $('#mb_acc_value_x').text(Math.floor(x)); + $('#mb_acc_value_y').text(Math.floor(y)); + mousemove_enabled = false; + }); + + accel_mouse_timer = window.setInterval(function () { + mousemove_enabled = true; + }, 30); + } else { + $('#microbit').off('mousemove'); + window.clearInterval(accel_mouse_timer); + } + }); $('#mb_therm_slider').slider({ value: 23, min: 0, diff --git a/lib/skulpt/microbit/mb.css b/lib/skulpt/microbit/mb.css index 1f8b26d..adc3707 100644 --- a/lib/skulpt/microbit/mb.css +++ b/lib/skulpt/microbit/mb.css @@ -98,7 +98,7 @@ height: 100px; line-height: 100px; text-align: center; - vertical-align: center; + vertical-align: middle; background-image: url('compassbk.jpg'); position: relative; } @@ -119,6 +119,10 @@ display: inline-block; margin: 0px 10px 0px 10px; } +.mb_slider_acc { + display: inline-block; + min-width: 2.5em; +} #mb_gesture_list { border-style: solid; border-width: 1px; @@ -127,16 +131,16 @@ } .mb_current_gesture { color: #F00; - margin; 1em; + margin: 1em; } .mb_active_gesture_down { transform: rotate(180deg); } .mb_active_gesture_left, .mb_active_gesture_right { - -webkit-transform: rotateY(80deg);transform: rotateY(80deg); + transform: rotateY(80deg); } .mb_active_gesture_facedown { - -webkit-transform: rotateY(180deg);transform: rotateY(180deg); + transform: rotateY(180deg); } .mb_active_gesture_freefall { transform: scale(0.2,0.2);