From 021a96cb4d84542f19b575d815a34344396c5200 Mon Sep 17 00:00:00 2001 From: singintime Date: Tue, 27 Oct 2020 00:46:16 +0100 Subject: [PATCH] petrock v0.01 --- apps.json | 13 ++++++++ apps/petrock/ChangeLog | 1 + apps/petrock/app-icon.js | 1 + apps/petrock/app.js | 70 +++++++++++++++++++++++++++++++++++++++ apps/petrock/petrock.png | Bin 0 -> 4213 bytes 5 files changed, 85 insertions(+) create mode 100644 apps/petrock/ChangeLog create mode 100644 apps/petrock/app-icon.js create mode 100644 apps/petrock/app.js create mode 100644 apps/petrock/petrock.png diff --git a/apps.json b/apps.json index 9680742ea..768551284 100644 --- a/apps.json +++ b/apps.json @@ -2307,5 +2307,18 @@ {"name":"mandel.app.js","url":"mandel.min.js"}, {"name":"mandel.img","url":"mandel-icon.js","evaluate":true} ] + }, + { + "id": "petrock", + "name": "Pet rock", + "icon": "petrock.png", + "version": "0.01", + "description": "A virtual pet rock with wobbly eyes", + "tags": "game", + "type": "app", + "storage": [ + {"name": "petrock.app.js", "url": "app.js"}, + {"name": "petrock.img", "url": "app-icon.js", "evaluate": true} + ] } ] diff --git a/apps/petrock/ChangeLog b/apps/petrock/ChangeLog new file mode 100644 index 000000000..5560f00bc --- /dev/null +++ b/apps/petrock/ChangeLog @@ -0,0 +1 @@ +0.01: New App! diff --git a/apps/petrock/app-icon.js b/apps/petrock/app-icon.js new file mode 100644 index 000000000..e05d47f85 --- /dev/null +++ b/apps/petrock/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("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")) diff --git a/apps/petrock/app.js b/apps/petrock/app.js new file mode 100644 index 000000000..c2804efd9 --- /dev/null +++ b/apps/petrock/app.js @@ -0,0 +1,70 @@ +const buffer = Graphics.createArrayBuffer(61, 61, 2, { msb: true }); +const eye = { + width: buffer.getWidth(), + height: buffer.getWidth(), + bpp: 2, + transparent: 2, + buffer: buffer.buffer, +}; +const rock = { + width: 240, + height: 160, + bpp: 2, + buffer: require("heatshrink").decompress(atob("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")) +}; + +let px = 0; +let py = 0; +let vx = 0; +let vy = 0; +let ax = 0; +let ay = 0; +let gx = 0; +let gy = 0; + +function draw() { + vx += ax; + vy += ay; + px += vx; + py += vy; + + const pp = Math.sqrt(px * px + py * py); + + if (pp > 14) { + const vv = Math.sqrt(vx * vx + vy * vy); + const alpha = Math.atan2(px, py); + const ratio = 14 / pp; + + px *= ratio; + py *= ratio; + vx = -0.9 * vv * Math.sin(alpha); + vy = -0.9 * vv * Math.cos(alpha); + } + + buffer.setColor(2); + buffer.fillRect(0, 0, 60, 60); + buffer.setColor(3); + buffer.fillCircle(30, 30, 30); + buffer.setColor(0); + buffer.fillCircle(30 + px, 30 + py, 16); + + g.drawImage(eye, 55, 90); + g.drawImage(eye, 125, 90); +} + +Bangle.setLCDPower(1); +Bangle.setLCDTimeout(0); + +g.clear(); +g.drawImage(rock, 0, 40); + +Bangle.loadWidgets(); +Bangle.drawWidgets(); + +Bangle.on('accel', (accel) => { + gx += 0.1 * (accel.x - gx); + gy += 0.1 * (accel.y - gy); + ax = 90 * gx - 100 * accel.x; + ay = 90 * gy - 100 * accel.y; + draw(); +}); diff --git a/apps/petrock/petrock.png b/apps/petrock/petrock.png new file mode 100644 index 0000000000000000000000000000000000000000..d17283e1cfc25aa72b05e23676dc9f485d9bd4f7 GIT binary patch literal 4213 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