From ea0cefaa64499fbb3708245bccf7c0da232b1b9a Mon Sep 17 00:00:00 2001 From: ArPhil <32819299+ArPhil@users.noreply.github.com> Date: Thu, 2 Apr 2020 19:56:44 +0200 Subject: [PATCH 1/5] Create app.js --- apps/balltastic/app.js | 186 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 apps/balltastic/app.js diff --git a/apps/balltastic/app.js b/apps/balltastic/app.js new file mode 100644 index 000000000..6c1de940c --- /dev/null +++ b/apps/balltastic/app.js @@ -0,0 +1,186 @@ +Bangle.setLCDBrightness(1); +Bangle.setLCDMode("doublebuffered"); + +let points = 0; +let level = 1; +let levelSpeedStart = 0.8; +let nextLevelPoints = 20; +let levelSpeedFactor = 0.2; +let counterWidth = 10; +let gWidth = g.getWidth() - counterWidth; +let gHeight = g.getHeight(); +let counter = 160; +let counterMax = 160; +let ballDims = 20; +let ballx = g.getWidth() / 2 - ballDims; +let bally = g.getHeight() / 2 - ballDims; +let dotx = g.getWidth() / 2; +let doty = g.getWidth() / 2; +let ballBuzzTime = 5; +let ballSpeedFactor = 40; +let redrawspeed = 5; +let dotwidth = 5; +let running = false; +let drawInterval; +let xBuzzed = false; +let yBuzzed = false; + +let BALL = require("heatshrink").decompress( + atob( + "ikUyAROvkQ3v4405AIYHBGq9KpMhktz1/W7feAJAtBEZ9jhkhs0ZgkQ8lKxW+jAdB516627E4X8AIPWzelmolKlpJBjMFEYIpC4kQ0YBBqWKynTFYPe7gpE3ec6gnHkNFrXL7372u2E4WjhGCAIliqWrUIPeKoIpB7h9HoUoqWq999///FIJ3BhGDEIIBBgFBAoWCoUI3vY62aQIW7ymSJooLBEoIADwkQEYVhEoInEGIOjR4O1y/OrIrBUYdr198iH/74nF88cE4gpCA4MY8k59CzBAINrx2164nBtduufPWYIlF++/xkxNoMAAIJPBoSdB52a30ZkNGE4IvBoUpwkxLIOMyWEmAmE7+MqKbEsLLBH4P3zw1BAYJFBFIMY8sQ4cx44nB0tVHYITBEoO967lDgDDC1tVQ4QBD37xBjMmJ4I3BE4IxBPoOMuSrBHYL1BJYbrDvfPLoYBD889jMlEoMhkpJBwkRE4O+jB7B405LoJPEYYUx0xPG7/3vxvBmOnrXsdIOc6jxBE4JfBvfwHIafDFoMRgh3H99+zsUDIOMqWU2YlBAAO1/AnBToN76EhgpTBFYKPBGIIhBEovOrWliuc2YlBE4oABE4etu2UyVrpqJBMoKvBEIPnjvWze97ATBE4YPBEopRC64BC27nBzn0znTAIOlimtq21y4BCEoM1HYOMqIVBE44AB0tVCYIBEigVBE4U1GYIFBymywkwEoJzHABIRBMIIXBWoIDCqOEmOEiABCmIjPAA51BFoVSEoUwAIIZNA" + ) +); + +function reset() { + g.clear(); + level = 1; + points = 0; + ballx = g.getWidth() / 2 - ballDims; + bally = g.getHeight() / 2 - ballDims; + counter = counterMax; + createRandomDot(); + drawInterval = setInterval(play, redrawspeed); + running = true; +} + +function collide() { + try { + Bangle.buzz(ballBuzzTime, 0.8); + } catch (e) {} +} + +function createRandomDot() { + dotx = Math.floor( + Math.random() * Math.floor(gWidth - dotwidth / 2) + dotwidth / 2 + ); + doty = Math.floor( + Math.random() * Math.floor(gHeight - dotwidth / 2) + dotwidth / 2 + ); +} + +function checkIfDotEaten() { + if ( + ballx + ballDims > dotx && + ballx <= dotx + dotwidth && + bally + ballDims > doty && + bally <= doty + dotwidth + ) { + collide(); + createRandomDot(); + counter = counterMax; + points++; + + if (points % nextLevelPoints == 0) { + level++; + } + } +} + +function drawLevelText() { + g.setColor("#26b6c7"); + g.setFontAlign(0, 0); + g.setFont("4x6", 5); + g.drawString("Level " + level, 120, 80); +} + +function draw() { + //bg + g.setColor("#71c6cf"); + g.fillRect(0, 0, g.getWidth(), g.getHeight()); + + //counter + drawCounter(); + + //draw level + drawLevelText(); + + //dot + g.setColor("#ff0000"); + g.fillCircle(dotx, doty, dotwidth); + + //ball + g.drawImage(BALL, ballx, bally); + + g.flip(); +} + +function drawCounter() { + g.setColor("#000000"); + g.fillRect(g.getWidth() - counterWidth, 0, g.getWidth(), gHeight); + + if(counter < 40 ) g.setColor("#fc0303"); + else if (counter < 80 ) g.setColor("#fc9803"); + else g.setColor("#0318fc"); + + g.fillRect( + g.getWidth() - counterWidth, + gHeight, + g.getWidth(), + gHeight - counter + ); +} + +function checkCollision() { + if (ballx < 0) { + ballx = 0; + if (!xBuzzed) collide(); + xBuzzed = true; + } else if (ballx > gWidth - ballDims) { + ballx = gWidth - ballDims; + if (!xBuzzed) collide(); + xBuzzed = true; + } else { + xBuzzed = false; + } + + if (bally < 0) { + bally = 0; + if (!yBuzzed) collide(); + yBuzzed = true; + } else if (bally > gHeight - ballDims) { + bally = gHeight - ballDims; + if (!yBuzzed) collide(); + yBuzzed = true; + } else { + yBuzzed = false; + } +} + +function count() { + counter -= levelSpeedStart + level * levelSpeedFactor; + if (counter <= 0) { + running = false; + clearInterval(drawInterval); + setTimeout(function(){ E.showMessage("Press Button 1\nto restart.", "Gameover!");},50); + } +} + +function accel(values) { + ballx -= values.x * ballSpeedFactor; + bally -= values.y * ballSpeedFactor; +} + +function play() { + if (running) { + accel(Bangle.getAccel()); + checkCollision(); + checkIfDotEaten(); + count(); + draw(); + } +} + +setTimeout(() => { + reset(); + drawInterval = setInterval(play, redrawspeed); + + setWatch( + () => { + if(!running) reset(); + }, + BTN1, + { repeat: true } + ); + + running = true; +}, 10); From b5a1909dbc3e774e4783a4c1f11644d1f180feeb Mon Sep 17 00:00:00 2001 From: ArPhil <32819299+ArPhil@users.noreply.github.com> Date: Thu, 2 Apr 2020 19:57:08 +0200 Subject: [PATCH 2/5] Add files via upload --- apps/balltastic/app.png | Bin 0 -> 14809 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/balltastic/app.png diff --git a/apps/balltastic/app.png b/apps/balltastic/app.png new file mode 100644 index 0000000000000000000000000000000000000000..0f95e056f0285e8d1413cb6fa63ce6770265b853 GIT binary patch literal 14809 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 literal 0 HcmV?d00001 From 05a14ed2a2e2da1a3f12c7c5a1ec6f30dffec132 Mon Sep 17 00:00:00 2001 From: ArPhil <32819299+ArPhil@users.noreply.github.com> Date: Thu, 2 Apr 2020 19:58:29 +0200 Subject: [PATCH 3/5] Create app-icon.js --- apps/balltastic/app-icon.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/balltastic/app-icon.js diff --git a/apps/balltastic/app-icon.js b/apps/balltastic/app-icon.js new file mode 100644 index 000000000..f25b6e067 --- /dev/null +++ b/apps/balltastic/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwkEogAIkUzmciBpIVIkYWBAAUyCx0hiIXFAAMkCxhUBC4fzDAYWLiAXFAAP//5KKoMRC4UTC4k/DAPzJJERiKcCC5H/GA4uBWwp6DC4YwHCwMBDI0SMAYwHoIWBiXxdIwYCMJCjBiM/C46VDC4M/GAkRgMf//ySAQAEgKrDC4lBgMCHIQXHSwxICIwIuBAAIXIGAYABiQXBkEBTYcgC473FkQXBiETTQZ4IgECC4cholCiJGDMAIXIWgIXCmMkC4JGDJBbEDC4UACwn/mAtGSYsxilCgIXFSAqDBkMRiIFBkcxiUiC4sxXowIBC4QGBkIXBiJ2EFwsDBIPyC4ILBgMRiUyiCmJgSCC+YXDgAXDR4YuEcAn/MAIXEmcgBoXyFwjIEMAQXFkIOCUgoXF+J3CC4cxBwR1IQQx3BkUzmUSBQKkFC5IuBkVDJAJeGRwLhHFwUkC4Mxl6lFC48gFwYXCmcTOwomBC4swYIMikU0C4UxkJ3FC40xFoIXCogXBmaxDC5MyCwUiogXDmIXTJASSBC4kRU4oXDkgXFmQwDNwIWEBoIXFJAYKBZggWFC4YWCC4g7BkIWBkYWBBYYXCkYXDJAYjDkQUEEYZGEGA4XIIwwwGDAQuOGAomCFo4uGGARoBE4ZOGFxAABBwgAICxAABCyxJBGJJFJJRgVNPggsMA=")) From 3ae9750152d0bf31c039970824a4913e26152db8 Mon Sep 17 00:00:00 2001 From: ArPhil <32819299+ArPhil@users.noreply.github.com> Date: Thu, 2 Apr 2020 20:05:02 +0200 Subject: [PATCH 4/5] Update apps.json --- apps.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/apps.json b/apps.json index b088865d2..467f6dd28 100644 --- a/apps.json +++ b/apps.json @@ -973,5 +973,18 @@ "storage": [ {"name":"widhwt.wid.js","url":"widget.js"} ] + }, + { + "id": "balltastic", + "name": "Balltastic", + "icon": "app.png", + "version": "0.01", + "description": "Simple but fun ball eats dots game.", + "tags": "game,fun", + "type": "app", + "storage": [ + {"name":"balltastic.app.js","url":"app.js"}, + {"name":"balltastic.img","url":"app-icon.js","evaluate":true} + ] } ] From 8ff0ba0c598ff1d434bf2871df5bfb00088b034e Mon Sep 17 00:00:00 2001 From: ArPhil <32819299+ArPhil@users.noreply.github.com> Date: Thu, 2 Apr 2020 20:09:24 +0200 Subject: [PATCH 5/5] Create ChangeLog --- apps/balltastic/ChangeLog | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/balltastic/ChangeLog diff --git a/apps/balltastic/ChangeLog b/apps/balltastic/ChangeLog new file mode 100644 index 000000000..5a62086c2 --- /dev/null +++ b/apps/balltastic/ChangeLog @@ -0,0 +1 @@ +0.01: Initial version of Balltastic released! Happy!