From d49a22a990a33c531e08dfd8603d9f85db3aa563 Mon Sep 17 00:00:00 2001 From: Johannes Schneider Date: Sun, 30 May 2021 20:40:56 +0200 Subject: [PATCH 01/11] trex: enabling move left and right --- apps/trex/trex.js | 4 ++-- core | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/trex/trex.js b/apps/trex/trex.js index fe84cb31a..642c10054 100644 --- a/apps/trex/trex.js +++ b/apps/trex/trex.js @@ -9,8 +9,8 @@ g.flip = function() { },0,(240-128)/2,{scale:2}); }; var W = g.getWidth(); -var BTNL = BTN4; -var BTNR = BTN5; +var BTNL = BTN2; +var BTNR = BTN3; var BTNU = BTN1; // Images can be added like this in Espruino v2.00 diff --git a/core b/core index 3f2ff467f..0ba4c2bd5 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 3f2ff467f22b746da94160e59ff89b621601b261 +Subproject commit 0ba4c2bd5503264279222b04a41505471c6622ff From 6de833db3bca32b0e3e1d9d609477c6d8fe5eae3 Mon Sep 17 00:00:00 2001 From: Johannes Schneider Date: Sat, 29 May 2021 13:04:11 +0200 Subject: [PATCH 02/11] trex: added highscore and setting (for highscore reset) --- apps.json | 8 ++++++-- apps/trex/ChangeLog | 1 + apps/trex/settings.js | 19 +++++++++++++++++++ apps/trex/trex.js | 26 ++++++++++++++++++++++++-- core | 2 +- 5 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 apps/trex/settings.js diff --git a/apps.json b/apps.json index 89be44fcf..cdfc14d24 100644 --- a/apps.json +++ b/apps.json @@ -362,13 +362,17 @@ { "id": "trex", "name": "T-Rex", "icon": "trex.png", - "version":"0.02", + "version":"0.03", "description": "T-Rex game in the style of Chrome's offline game", "tags": "game", "allow_emulator":true, "storage": [ {"name":"trex.app.js","url":"trex.js"}, - {"name":"trex.img","url":"trex-icon.js","evaluate":true} + {"name":"trex.img","url":"trex-icon.js","evaluate":true}, + {"name":"trex.settings.js","url":"settings.js"} + ], + "data": [ + {"name":"trex.score", "storageFile": true} ] }, { "id": "astroid", diff --git a/apps/trex/ChangeLog b/apps/trex/ChangeLog index 42c1df403..587dec05b 100644 --- a/apps/trex/ChangeLog +++ b/apps/trex/ChangeLog @@ -1 +1,2 @@ 0.02: Add "ram" keyword to allow 2v06 Espruino builds to cache function that needs to be fast +0.03: Enabled BTN2 and BTN3, added highscore (score is saved to storage and can be reset in app settings menu) diff --git a/apps/trex/settings.js b/apps/trex/settings.js new file mode 100644 index 000000000..67aa9a518 --- /dev/null +++ b/apps/trex/settings.js @@ -0,0 +1,19 @@ +(function (back) { + const menu = { + '': { 'title': 'T-Rex' }, + '< Back': back, + 'Reset Highscore': () => { + E.showPrompt('Reset Highscore?').then((v) => { + let delay = 50; + if (v) { + delay = 500; + E.showMessage('Resetting'); + var f = require('Storage').open('trex.score', 'w'); + f.write('0\n'); + } + setTimeout(() => E.showMenu(menu), delay); + }); + } + }; + E.showMenu(menu); +}); diff --git a/apps/trex/trex.js b/apps/trex/trex.js index 642c10054..0e36ec59a 100644 --- a/apps/trex/trex.js +++ b/apps/trex/trex.js @@ -1,3 +1,13 @@ +function loadHighScore() { + var f = require("Storage").open("trex.score", "r"); + return f.readLine() || 0; +} + +function saveHighScore(score) { + var f = require("Storage").open("trex.score", "w"); + f.write(score + "\n"); +} + greal = g; g.clear(); g = Graphics.createArrayBuffer(120,64,1,{msb:true}); @@ -134,6 +144,8 @@ var IMG = { IMG.rex.forEach(i=>i.transparent=0); IMG.cacti.forEach(i=>i.transparent=0); var cacti, rex, frame; +// displayedHighScore is not updated before restart +var highScore = loadHighScore(), displayedHighScore; function gameStart() { rex = { @@ -152,6 +164,7 @@ function gameStart() { } IMG.ground = { width: 128, height: 3, bpp : 1, buffer : random.buffer }; frame = 0; + displayedHighScore = highScore; setInterval(onFrame, 50); } function gameStop() { @@ -159,8 +172,13 @@ function gameStop() { rex.img = 2; // dead clearInterval(); setTimeout(function() { + // putting saveHighScore here to not delay the frame drawing + if (rex.score > highScore) { + highScore = rex.score; + saveHighScore(highScore); + } setWatch(gameStart, BTNU, {repeat:0,debounce:50,edge:"rising"}); - }, 1000); + }, 800); setTimeout(onFrame, 10); } @@ -190,6 +208,9 @@ function onFrame() { while (cacti.length && cacti[0].x<0) cacti.shift(); } else { g.drawString("Game Over!",(W-g.stringWidth("Game Over!"))/2,20); + if (rex.score > highScore) { + g.drawString("New Record!",(W-g.stringWidth("New Record!"))/2,28); + } } g.drawLine(0,60,239,60); cacti.forEach(c=>g.drawImage(IMG.cacti[c.img],c.x,60-IMG.cacti[c.img].height)); @@ -213,7 +234,8 @@ function onFrame() { var groundOffset = frame&127; g.drawImage(IMG.ground, -groundOffset, 61); g.drawImage(IMG.ground, 128-groundOffset, 61); - g.drawString(rex.score,(W-1)-g.stringWidth(rex.score)); + g.drawString(displayedHighScore,(W-1)-g.stringWidth(displayedHighScore), 0); + g.drawString(rex.score,(W-1)-g.stringWidth(rex.score), 8); g.flip(); } diff --git a/core b/core index 0ba4c2bd5..3f2ff467f 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 0ba4c2bd5503264279222b04a41505471c6622ff +Subproject commit 3f2ff467f22b746da94160e59ff89b621601b261 From 2dd8844a45f3de68745215e103873ec41bba4a77 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Tue, 8 Jun 2021 09:38:08 +0100 Subject: [PATCH 03/11] 0.26: Remove buzz in setUI polyfill (#750) --- apps.json | 2 +- apps/boot/ChangeLog | 1 + apps/boot/bootupdate.js | 19 ++++++++----------- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/apps.json b/apps.json index fdf0b5871..f5b4c47a6 100644 --- a/apps.json +++ b/apps.json @@ -4,7 +4,7 @@ "tags": "tool,system", "type":"bootloader", "icon": "bootloader.png", - "version":"0.25", + "version":"0.26", "description": "This is needed by Bangle.js to automatically load the clock, menu, widgets and settings", "storage": [ {"name":".boot0","url":"boot0.js"}, diff --git a/apps/boot/ChangeLog b/apps/boot/ChangeLog index 48e1baa48..37ce0d0ac 100644 --- a/apps/boot/ChangeLog +++ b/apps/boot/ChangeLog @@ -24,3 +24,4 @@ 0.23: Move to a precalculated .boot0 file which should speed up load time 0.24: Add Bangle.setUI polyfill 0.25: Fix error in 'no clock app' message +0.26: Remove buzz in setUI polyfill (#750) diff --git a/apps/boot/bootupdate.js b/apps/boot/bootupdate.js index 9dc90cc9a..9dd49453e 100644 --- a/apps/boot/bootupdate.js +++ b/apps/boot/bootupdate.js @@ -97,25 +97,22 @@ if (Bangle.touchandler) { Bangle.removeListener("touch", Bangle.touchHandler); delete Bangle.touchHandler; } -function b() { - try{Bangle.buzz(20);}catch(e){} -} if (!mode) return; else if (mode=="updown") { Bangle.btnWatches = [ - setWatch(function() { b();cb(-1); }, BTN1, {repeat:1}), - setWatch(function() { b();cb(1); }, BTN3, {repeat:1}), - setWatch(function() { b();cb(); }, BTN2, {repeat:1}) + setWatch(function() { cb(-1); }, BTN1, {repeat:1}), + setWatch(function() { cb(1); }, BTN3, {repeat:1}), + setWatch(function() { cb(); }, BTN2, {repeat:1}) ]; } else if (mode=="leftright") { Bangle.btnWatches = [ - setWatch(function() { b();cb(-1); }, BTN1, {repeat:1}), - setWatch(function() { b();cb(1); }, BTN3, {repeat:1}), - setWatch(function() { b();cb(); }, BTN2, {repeat:1}) + setWatch(function() { cb(-1); }, BTN1, {repeat:1}), + setWatch(function() { cb(1); }, BTN3, {repeat:1}), + setWatch(function() { cb(); }, BTN2, {repeat:1}) ]; - Bangle.swipeHandler = d => {b();cb(d);}; + Bangle.swipeHandler = d => {cb(d);}; Bangle.on("swipe", Bangle.swipeHandler); - Bangle.touchHandler = d => {b();cb();}; + Bangle.touchHandler = d => {cb();}; Bangle.on("touch", Bangle.touchHandler); } else throw new Error("Unknown UI mode"); From 3df0e9d64c6eb917b638e1c622585bcad3510c19 Mon Sep 17 00:00:00 2001 From: Richard de Boer Date: Thu, 10 Jun 2021 20:18:21 +0200 Subject: [PATCH 04/11] remove duplicate omnitrix "readme" key from apps.json (no code change) --- apps.json | 1 - 1 file changed, 1 deletion(-) diff --git a/apps.json b/apps.json index f5b4c47a6..aee81676b 100644 --- a/apps.json +++ b/apps.json @@ -3212,7 +3212,6 @@ "readme": "README.md", "description": "An Omnitrix Showpiece", "tags": "game", - "readme": "README.md", "storage": [ {"name":"omnitrix.app.js","url":"omnitrix.app.js"}, {"name":"omnitrix.img","url":"omnitrix.icon.js","evaluate":true} From 002f861038674221327a50c256bcea881d3e0ab0 Mon Sep 17 00:00:00 2001 From: Richard de Boer Date: Thu, 10 Jun 2021 20:17:03 +0200 Subject: [PATCH 05/11] barclock: use timeout to tick exactly on the second, instead of interval --- apps.json | 2 +- apps/barclock/ChangeLog | 3 ++- apps/barclock/clock-bar.js | 18 +++++++++--------- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/apps.json b/apps.json index aee81676b..c10395020 100644 --- a/apps.json +++ b/apps.json @@ -1312,7 +1312,7 @@ { "id": "barclock", "name": "Bar Clock", "icon": "clock-bar.png", - "version":"0.05", + "version":"0.06", "description": "A simple digital clock showing seconds as a bar", "tags": "clock", "type":"clock", diff --git a/apps/barclock/ChangeLog b/apps/barclock/ChangeLog index 616ee66e9..551926191 100644 --- a/apps/barclock/ChangeLog +++ b/apps/barclock/ChangeLog @@ -2,4 +2,5 @@ 0.02: Apply locale, 12-hour setting 0.03: Fix dates drawing over each other at midnight 0.04: Small bugfix -0.05: Clock does not start if app Languages is not installed \ No newline at end of file +0.05: Clock does not start if app Languages is not installed +0.06: Improve accuracy \ No newline at end of file diff --git a/apps/barclock/clock-bar.js b/apps/barclock/clock-bar.js index 0f2609298..4bb6c048a 100644 --- a/apps/barclock/clock-bar.js +++ b/apps/barclock/clock-bar.js @@ -12,12 +12,12 @@ date.setMonth(1, 3) // februari: months are zero-indexed const localized = locale.date(date, true) locale.dayFirst = /3.*2/.test(localized) - + locale.hasMeridian = false if(typeof locale.meridian === 'function') { // function does not exists if languages app is not installed locale.hasMeridian = (locale.meridian(date) !== '') } - + } const screen = { width: g.getWidth(), @@ -124,7 +124,7 @@ g.fillRect(0, timeTop, screen.width, screen.height) } - let lastSeconds + let lastSeconds, tTick const tick = function () { g.reset() const date = new Date() @@ -136,20 +136,20 @@ } // the bar only gets larger, so drawing on top of the previous one is fine drawBar(date) - lastSeconds = seconds + // schedule next update + const millis = date.getMilliseconds() + tTick = setTimeout(tick, 1000-millis) } - let iTick const start = function () { lastSeconds = 99 // force redraw tick() - iTick = setInterval(tick, 1000) } const stop = function () { - if (iTick) { - clearInterval(iTick) - iTick = undefined + if (tTick) { + clearTimeout(tTick) + tTick = undefined } } From c6bafb6b0a1cd7f6efa71a800c41e5b67229c740 Mon Sep 17 00:00:00 2001 From: Richard de Boer Date: Thu, 10 Jun 2021 20:46:02 +0200 Subject: [PATCH 06/11] barclock: add readme with screenshots --- apps.json | 1 + apps/barclock/README.md | 6 ++++++ apps/barclock/screenshot.png | Bin 0 -> 2764 bytes apps/barclock/screenshot_pm.png | Bin 0 -> 2595 bytes 4 files changed, 7 insertions(+) create mode 100644 apps/barclock/README.md create mode 100644 apps/barclock/screenshot.png create mode 100644 apps/barclock/screenshot_pm.png diff --git a/apps.json b/apps.json index c10395020..31c791c86 100644 --- a/apps.json +++ b/apps.json @@ -1316,6 +1316,7 @@ "description": "A simple digital clock showing seconds as a bar", "tags": "clock", "type":"clock", + "readme": "README.md", "allow_emulator":true, "storage": [ {"name":"barclock.app.js","url":"clock-bar.js"}, diff --git a/apps/barclock/README.md b/apps/barclock/README.md new file mode 100644 index 000000000..4b92313c5 --- /dev/null +++ b/apps/barclock/README.md @@ -0,0 +1,6 @@ +# Bar Clock +A simple digital clock showing seconds as a horizontal bar. + +| 24hr style | 12hr style | +| --- | --- | +| ![24-hour bar clock](screenshot.png) | ![12-hour bar clock with meridian](screenshot_pm.png) | diff --git a/apps/barclock/screenshot.png b/apps/barclock/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..d37ee9cae2680e73889600e8eb29f87ba2956f87 GIT binary patch literal 2764 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 literal 0 HcmV?d00001 From c1358b51bcde602c6039cf8aed996d61b4d77bba Mon Sep 17 00:00:00 2001 From: hughbarney Date: Thu, 10 Jun 2021 23:49:44 +0100 Subject: [PATCH 07/11] updated README for gpsservice app, to state its superceded by gpssetup --- apps/gpsservice/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/gpsservice/README.md b/apps/gpsservice/README.md index b1e3e60d4..061f3ba3b 100644 --- a/apps/gpsservice/README.md +++ b/apps/gpsservice/README.md @@ -2,6 +2,9 @@ A configurable, low power GPS widget that runs in the background. +NOTE: This app has been superceded by [gpssetup](https://github.com/espruino/BangleApps/blob/master/apps/gpssetup/README.md) + + ## Goals To develop a low power GPS widget that runs in the background and to From ca12134ffe2a4ee3b464b49d1f497ca842a9e7af Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 11 Jun 2021 11:14:52 +0100 Subject: [PATCH 08/11] lock alignment --- apps/widlock/widget.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/widlock/widget.js b/apps/widlock/widget.js index b710de8c6..ea664a083 100644 --- a/apps/widlock/widget.js +++ b/apps/widlock/widget.js @@ -5,6 +5,6 @@ }); WIDGETS["lock"]={area:"tl",width:Bangle.isLCDOn()?0:16,draw:function(w) { if (!Bangle.isLCDOn()) - g.reset().drawImage(atob("DhABH+D/wwMMDDAwwMf/v//4f+H/h/8//P/z///f/g=="), w.x, w.y); + g.reset().drawImage(atob("DhABH+D/wwMMDDAwwMf/v//4f+H/h/8//P/z///f/g=="), w.x+1, w.y+4); }}; })() From 45b5ab231a5875e131a8f494f1701d0e39f84c6a Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 11 Jun 2021 11:15:18 +0100 Subject: [PATCH 09/11] minor colour change to help with rounding on 3bpp --- apps/widid/widget.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/widid/widget.js b/apps/widid/widget.js index 68917c65a..d4f4d6386 100644 --- a/apps/widid/widget.js +++ b/apps/widid/widget.js @@ -2,7 +2,7 @@ (() => { function draw() { var id = NRF.getAddress().substr().substr(12).split(":"); - g.reset().setColor(0, 0.5, 1).setFont("6x8", 1); + g.reset().setColor(0, 0.49, 1).setFont("6x8", 1); g.drawString(id[0], this.x+2, this.y+4, true); g.drawString(id[1], this.x+2, this.y+14, true); } From 7a287c497e17b8389ea683218de13edd22f6d822 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 11 Jun 2021 11:34:05 +0100 Subject: [PATCH 10/11] Add option for 3 bit maps, scrolling support --- apps.json | 2 +- apps/openstmap/ChangeLog | 1 + apps/openstmap/app.js | 16 +++++++++++++++- apps/openstmap/custom.html | 11 +++++++++++ apps/openstmap/openstmap.js | 15 ++++++++++----- 5 files changed, 38 insertions(+), 7 deletions(-) diff --git a/apps.json b/apps.json index f5b4c47a6..a02aec925 100644 --- a/apps.json +++ b/apps.json @@ -1462,7 +1462,7 @@ "name": "OpenStreetMap", "shortName":"OpenStMap", "icon": "app.png", - "version":"0.05", + "version":"0.06", "description": "[BETA] Loads map tiles from OpenStreetMap onto your Bangle.js and displays a map of where you are", "tags": "outdoors,gps", "custom": "custom.html", diff --git a/apps/openstmap/ChangeLog b/apps/openstmap/ChangeLog index 64b39b509..4d9b61031 100644 --- a/apps/openstmap/ChangeLog +++ b/apps/openstmap/ChangeLog @@ -3,3 +3,4 @@ 0.03: Show widgets (mainly so we can use the GPS recorder widget) 0.04: Move map rendering to a module (fix #396) 0.05: Show currently active gpsrec GPS trace (fix #395) +0.06: Add support for scrolling, option for 3 bit maps diff --git a/apps/openstmap/app.js b/apps/openstmap/app.js index 940557361..5a01a9059 100644 --- a/apps/openstmap/app.js +++ b/apps/openstmap/app.js @@ -34,7 +34,7 @@ Bangle.on('GPS',function(f) { g.drawString(txt,120,y1 + 4); drawMarker(); }); -Bangle.setGPSPower(1); +Bangle.setGPSPower(1, "app"); if (HASWIDGETS) { Bangle.loadWidgets(); @@ -55,3 +55,17 @@ setWatch(function() { m.lon = fix.lon; redraw(); }, BTN2, {repeat:true}); + +var hasScrolled = false; +E.on('touch',e=>{ + if (e.b) { + g.setClipRect(0,y1,g.getWidth()-1,y2); + g.scroll(e.dx,e.dy); + m.scroll(e.dx,e.dy); + g.setClipRect(0,0,g.getWidth()-1,g.getHeight()-1); + hasScrolled = true; + } else if (hasScrolled) { + hasScrolled = false; + redraw(); + } +}); diff --git a/apps/openstmap/custom.html b/apps/openstmap/custom.html index 81a55a4f8..95a4ff0a6 100644 --- a/apps/openstmap/custom.html +++ b/apps/openstmap/custom.html @@ -32,6 +32,7 @@
+

3 bit