ok the buzzing *might* work now

pull/2623/head
Le~Kat 2023-02-25 22:44:11 -05:00
parent 560a784be8
commit 9d42114acb
3 changed files with 144 additions and 118 deletions

View File

@ -21,3 +21,4 @@
1.19: added longer delay before resetting accelHandler
1.20: removed all traces of accel b/c I've given up
1.21: added a drawWidgets command to see if I have the padding right
1.22: ok the buzzing *might* work now

View File

@ -15,7 +15,6 @@ function drawMenu() {
g.clear();
g.setFont ("Vector", 40);
Bangle.drawWidgets();
g.drawString ((" " + stringArr [0]).slice (-3), 5, 10);
g.drawString ((" " + stringArr [1]).slice (-3), 5, 50);
@ -80,12 +79,40 @@ function touchHandler (button, xy) {
drawMenu();
}
function accelHandler (xyz) {
if (xyz.diff >= 0.3) {
menu = false;
//rollDice();
//mutex (rollDice);
}
}
let lock = false;
function mutex (functionRef) {
if (lock) {
return Promise.reject (new Error ("mutex is busy"));
}
lock = true;
return new Promise (() => {
functionRef.then (() => {
lock = false;
});
});
}
function voidFn() {
return;
}
function rollDice (timeoutFunctionRef) {
function rollDice() {
resultsArr = new Uint8Array (8);
for (i = 0; i < 8; i++) {
@ -115,15 +142,12 @@ function rollDice (timeoutFunctionRef) {
}
}
vibrate (timeoutFunctionRef);
return vibrate();
}
function vibrate (timeoutFunctionRef) {
function vibrate() {
Bangle.buzz(50, 0.5).then (() => {
setTimeout (timeoutFunctionRef, 150);
});
return Bangle.buzz(50, 0.5);
}
function random (max) {
@ -133,9 +157,10 @@ function random (max) {
drawMenu();
Bangle.on ('touch', touchHandler);
Bangle.on ('accel', accelHandler);
setWatch (function() {
menu = false;
rollDice (voidFn);
//rollDice();
mutex (rollDice);
}, BTN, {repeat: true, edge: "falling", debounce: 10});

View File

@ -1,7 +1,7 @@
{ "id": "multidice",
"name": "multiple dice roller",
"shortName":"multidice",
"version":"1.21",
"version":"1.22",
"description": "roll anywhere from 1-8 dice at the same time",
"icon": "app.png",
"tags": "tool,game",