mirror of https://github.com/espruino/BangleApps
Adding Dice-n-Roll app.
parent
0e2dccdbda
commit
229d0dc158
|
@ -0,0 +1 @@
|
||||||
|
0.01: App created
|
|
@ -0,0 +1 @@
|
||||||
|
E.toArrayBuffer(atob("ICABAAAAAAAAAAAAAAAAAAHAAAAP8AAAfn4AA/APwA+DwfAPg8HwD+AH8Az4HzAMPnwwDAfgMAwBgDAMCYAwDA2YMAwhmDAMIZAwDCGDMA2BgzAMgYAwDAGAMA8BgPADwYPAAPGPgAB9ngAAH/gAAAfgAAABgAAAAAAAAAAAAAAAAAA="))
|
|
@ -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);
|
Binary file not shown.
After Width: | Height: | Size: 637 B |
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
|
@ -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}
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in New Issue