From 229d0dc1580b423385a1a82c809233094dcee889 Mon Sep 17 00:00:00 2001 From: kirktrekkie Date: Sat, 14 May 2022 10:05:42 +0200 Subject: [PATCH] Adding Dice-n-Roll app. --- apps/diceroll/ChangeLog | 1 + apps/diceroll/app-icon.js | 1 + apps/diceroll/app.js | 108 ++++++++++++++++++++++++++ apps/diceroll/app.png | Bin 0 -> 637 bytes apps/diceroll/diceroll_screenshot.png | Bin 0 -> 2408 bytes apps/diceroll/metadata.json | 14 ++++ 6 files changed, 124 insertions(+) create mode 100644 apps/diceroll/ChangeLog create mode 100644 apps/diceroll/app-icon.js create mode 100644 apps/diceroll/app.js create mode 100644 apps/diceroll/app.png create mode 100644 apps/diceroll/diceroll_screenshot.png create mode 100644 apps/diceroll/metadata.json diff --git a/apps/diceroll/ChangeLog b/apps/diceroll/ChangeLog new file mode 100644 index 000000000..89dff4011 --- /dev/null +++ b/apps/diceroll/ChangeLog @@ -0,0 +1 @@ +0.01: App created \ No newline at end of file diff --git a/apps/diceroll/app-icon.js b/apps/diceroll/app-icon.js new file mode 100644 index 000000000..4d6e7da16 --- /dev/null +++ b/apps/diceroll/app-icon.js @@ -0,0 +1 @@ +E.toArrayBuffer(atob("ICABAAAAAAAAAAAAAAAAAAHAAAAP8AAAfn4AA/APwA+DwfAPg8HwD+AH8Az4HzAMPnwwDAfgMAwBgDAMCYAwDA2YMAwhmDAMIZAwDCGDMA2BgzAMgYAwDAGAMA8BgPADwYPAAPGPgAB9ngAAH/gAAAfgAAABgAAAAAAAAAAAAAAAAAA=")) diff --git a/apps/diceroll/app.js b/apps/diceroll/app.js new file mode 100644 index 000000000..d514ce92f --- /dev/null +++ b/apps/diceroll/app.js @@ -0,0 +1,108 @@ +var init_message = true; +var acc_data; +var die_roll = 1; +var selected_die = 0; +var roll = 0; +const dices = [4, 6, 10, 12, 20]; + +g.setFontAlign(0,0); + +Bangle.on('touch', function(button, xy) { + // Change die if not rolling + if(roll < 1){ + if(selected_die <= 3){ + selected_die++; + }else{ + selected_die = 0; + } + } + //Disable initial message + init_message = false; +}); + +function rect(){ + x1 = g.getWidth()/2 - 35; + x2 = g.getWidth()/2 + 35; + y1 = g.getHeight()/2 - 35; + y2 = g.getHeight()/2 + 35; + g.drawRect(x1, y1, x2, y2); +} + +function pentagon(){ + x1 = g.getWidth()/2; + y1 = g.getHeight()/2 - 50; + x2 = g.getWidth()/2 - 50; + y2 = g.getHeight()/2 - 10; + x3 = g.getWidth()/2 - 30; + y3 = g.getHeight()/2 + 30; + x4 = g.getWidth()/2 + 30; + y4 = g.getHeight()/2 + 30; + x5 = g.getWidth()/2 + 50; + y5 = g.getHeight()/2 - 10; + g.drawPoly([x1, y1, x2, y2, x3, y3, x4, y4, x5, y5], true); +} + +function triangle(){ + x1 = g.getWidth()/2; + y1 = g.getHeight()/2 - 57; + x2 = g.getWidth()/2 - 50; + y2 = g.getHeight()/2 + 23; + x3 = g.getWidth()/2 + 50; + y3 = g.getHeight()/2 + 23; + g.drawPoly([x1, y1, x2, y2, x3, y3], true); +} + +function drawDie(variant) { + if(variant == 1){ + //Rect, 6 + rect(); + }else if(variant == 3){ + //Pentagon, 12 + pentagon(); + }else{ + //Triangle, 4, 10, 20 + triangle(); + } +} + +function initMessage(){ + g.setFont("6x8", 2); + g.drawString("Dice-n-Roll", g.getWidth()/2, 20); + g.drawString("Shake to roll", g.getWidth()/2, 60); + g.drawString("Tap to change", g.getWidth()/2, 80); + g.drawString("Tap to start", g.getWidth()/2, 150); +} + +function rollDie(){ + acc_data = Bangle.getAccel(); + if(acc_data.diff > 0.3){ + roll = 3; + } + //Mange the die "roll" by chaning the number a few times + if(roll > 0){ + g.drawString("Rolling!", g.getWidth()/2, 150); + die_roll = Math.abs(E.hwRand()) % dices[selected_die] + 1; + roll--; + } + //Draw dice graphics + drawDie(selected_die); + //Draw dice number + g.setFontAlign(0,0); + g.setFont("Vector", 45); + g.drawString(die_roll, g.getWidth()/2, g.getHeight()/2); + //Draw selected die in right corner + g.setFont("6x8", 2); + g.drawString(dices[selected_die], g.getWidth()-15, 15); +} + +function main() { + g.clear(); + if(init_message){ + initMessage(); + }else{ + rollDie(); + } + Bangle.setLCDPower(1); +} + +var interval = setInterval(main, 300); \ No newline at end of file diff --git a/apps/diceroll/app.png b/apps/diceroll/app.png new file mode 100644 index 0000000000000000000000000000000000000000..b695b7080ae9fb84e30140aa653c221fc2c7aecd GIT binary patch literal 637 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 LA>Lvy%K3i-A)as# literal 0 HcmV?d00001 diff --git a/apps/diceroll/metadata.json b/apps/diceroll/metadata.json new file mode 100644 index 000000000..81a2f8bfd --- /dev/null +++ b/apps/diceroll/metadata.json @@ -0,0 +1,14 @@ +{ "id": "diceroll", + "name": "Dice-n-Roll", + "shortName":"Dice-n-Roll", + "icon": "app.png", + "version":"0.01", + "description": "A dice app with a few different dice.", + "screenshots": [{"url":"diceroll_screenshot.png"}], + "tags": "game", + "supports": ["BANGLEJS2"], + "storage": [ + {"name":"diceroll.app.js","url":"app.js"}, + {"name":"diceroll.img","url":"app-icon.js","evaluate":true} + ] + } \ No newline at end of file