From f1d5d9025ebd2e6ba93860041107ca3a37b2a57d Mon Sep 17 00:00:00 2001 From: Daniele Date: Fri, 17 Jun 2022 21:58:14 +0200 Subject: [PATCH] Bouncing DVD logo app --- apps/dvdbounce/ChangeLog | 1 + apps/dvdbounce/README.md | 9 +++ apps/dvdbounce/dvdbounce-icon.js | 1 + apps/dvdbounce/dvdbounce.app.js | 108 +++++++++++++++++++++++++++++++ apps/dvdbounce/dvdbounce.png | Bin 0 -> 1350 bytes apps/dvdbounce/metadata.json | 31 +++++++++ apps/dvdbounce/screenshot.gif | Bin 0 -> 119003 bytes 7 files changed, 150 insertions(+) create mode 100644 apps/dvdbounce/ChangeLog create mode 100644 apps/dvdbounce/README.md create mode 100644 apps/dvdbounce/dvdbounce-icon.js create mode 100644 apps/dvdbounce/dvdbounce.app.js create mode 100644 apps/dvdbounce/dvdbounce.png create mode 100644 apps/dvdbounce/metadata.json create mode 100644 apps/dvdbounce/screenshot.gif diff --git a/apps/dvdbounce/ChangeLog b/apps/dvdbounce/ChangeLog new file mode 100644 index 000000000..6d1dc4ce4 --- /dev/null +++ b/apps/dvdbounce/ChangeLog @@ -0,0 +1 @@ +0.01: Created the app. The logo bounces and buzz when it hits the angles. diff --git a/apps/dvdbounce/README.md b/apps/dvdbounce/README.md new file mode 100644 index 000000000..50f3ef0e9 --- /dev/null +++ b/apps/dvdbounce/README.md @@ -0,0 +1,9 @@ +# Bouncing DVD logo + +Have you ever wanted to admire the bouncing DVD logo on your watch? Now you can! Let's hope it touches an angle. + +![Gif of the DVD logo bouncing around](screenshot.gif) + +## Creator + +I'm [TrinTragula](https://github.com/TrinTragula) on Github. Feel free to reach me. \ No newline at end of file diff --git a/apps/dvdbounce/dvdbounce-icon.js b/apps/dvdbounce/dvdbounce-icon.js new file mode 100644 index 000000000..0625c2394 --- /dev/null +++ b/apps/dvdbounce/dvdbounce-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwhC/AH4A/AH4A/ACWIAA4MJwAXPhALKC5AlCBZYADE4gXELQ4SDC4gCBC4IDCAwYTEBAghCBYYCEC5YUFAooOIBBAKDMwwIFCwQIDNIZtGTRANEEIiyMVYrYHLIq0GQA4OGABIPPAA77GC8CDGABAfFBAbpCAIIfCAQqmJhAXDhB4CCIMIEgIYETAoaCC5zYHIIRQDDATAKPJasWAH4A/AH4A/AE4")) \ No newline at end of file diff --git a/apps/dvdbounce/dvdbounce.app.js b/apps/dvdbounce/dvdbounce.app.js new file mode 100644 index 000000000..39037df34 --- /dev/null +++ b/apps/dvdbounce/dvdbounce.app.js @@ -0,0 +1,108 @@ +// The DVD logo +var dvdLogo = require("heatshrink").decompress(atob("3dTwIFC/4AG/ALCgYJEwAcDj4XHBgYJF4AJCg4WH8AMCn4KFF4YWH/wLCh4KJIpA7CgIKG+BnHOg1/BYxGCCw4LDHQ/8IpQ6CQBBRBIpBpDBY4uCKA6jDUQy8FTIn3EQYIBGYSQDBYTVF/x0DKITMGFwh4D96jDKILuDDoSvDEAn9AQIeDB4glCwA5ELwW/FIRNB/x2BVQSvDHIgIB+ZvCNwWPOwZ7DAYKEFDwJoBAYPhHgYeC8ADCP4QEB85YCEQRFELoIqBBA5oFL4SMEwBFEBAWfDwQFB4K1EJoPwIooIB+InCHIQ8EOgYIHA4PAIQP8IogqCBYQIFw4TBAoRICIoQiB/AaDBAfwJAOAUwTrEFQZFHAQPwCYPwCIIxBWIZFIwICBSIIKBIo4IHFYXgSwRFKBARFCFYLlC8DDCRZTaDOIPPHgngaIhFFBoQfB/YhCIojRDBAg/B/gaCGYRFEHgaUED4IEBD4JBDIAIDBLgQEBIoYbC4AMCHAQcBG4IbCAgJFDCQRlBJIIzCIogJCBAgWCD4IICHARFDCwQIEIAY7DGYRmBEAIWCBAJOCNwYfBPAQSBEIWDMog8DAAQfBUYYzEAATkCBAq+CGgQzEYQgIGD4Q3CGYJnDKYhFGCwLtEVAjQDIow2BawY8HNQQIFCwR0CfYgWFBAoWDEAJ5CIogWCIooHCEAR5CJQQWFIoYPCOgg0BHgiJBIooHDUYaCCIoRLCABl/CB4AFg5MFACBNGAB8fQYYARgL/CACc/CysHLisAuAWVhgWVgL/BCyn/WyX/AAx4Mv4VHAARLJFZAAEbA5VBABwWFh4WPJAs/CZoODOA3A/8H/k//BNBK4N/AQQPB/wWF/kf4P/w4jBg4+BKIMAgYuC/BEF4P4n/w//gEIPwCYJYBCAYLBT4f4n0P/0f/k+g/+FoPwn4uDHQYACwZFB4ZHB8A2BKAQYBCAXwW4nwuF//BCBFgJ3CwZ/BCAR1BUIkEJYJHCFgINB+F/GgIAC4BLENgXhI4J5B8BfCI4KMEFwY0BKoK6BvwSDYoIoDCAIuE8APBXQMPwJaC/kPDALqEGgf8NAK6NAoLpDTYS6CCAKCCAoK+BCwhYBMYQiBXQOALQQ2BAQQWFXggAMGoIAECx6gBAArVEABJDDAAhQDABCTBABIYJ4AVKAAbCDChYA=")); + +// Screen width +const WIDTH = g.getWidth(); +// Screen height +const HEIGHT = g.getHeight(); +// dvd logo image width +const IMG_WIDTH = 94; +/// dvd logo image height +const IMG_HEIGHT = 42; + +// Assign a random X and Y initial speed between 1.5 and 1 +var speedX = 1.5 - Math.random() / 2; +var speedY = 1.5 - Math.random() / 2; +// The logo X and Y position +var posX = 0; +var posY = 0; + +// The current logo color +var currentColor = "#ff00ff"; + +// Get a random value between "ff" and "00" +function getHexColor() { + if (Math.round(Math.random())) { + return "ff"; + } else { + return "00"; + } +} + +// Get a new 8 bit color +function getNewColor() { + return "#" + getHexColor() + getHexColor() + getHexColor(); +} + +// Change the dvd logo color on impact +// Only allow colors different from the current one +// and different from the bg +function changeColor() { + var newColor = getNewColor(); + while (newColor == currentColor || newColor == "#000000") { + newColor = getNewColor(); + } + currentColor = newColor; + g.setColor(newColor); +} + +// Draw the logo +function draw() { + // Move it + posX += speedX; + posY += speedY; + + var collisions = 0; + // Collision detection + if (posX <= 0) { + speedX = -speedX; + posX = 0; + collisions++; + } + if (posY <= 0) { + speedY = -speedY; + posY = 0; + collisions++; + } + if (posX >= (WIDTH - IMG_WIDTH)) { + speedX = -speedX; + posX = WIDTH - IMG_WIDTH; + collisions++; + } + if (posY >= (HEIGHT - IMG_HEIGHT)) { + speedY = -speedY; + posY = HEIGHT - IMG_HEIGHT; + collisions++; + } + + // If we detected 2 collisions, we touched an angle, HURRAY! + if (collisions > 1) { + Bangle.buzz(); + } + + // Change logo color on collision + if (collisions > 0) { + changeColor(); + } + + // Actually draw the logo + g.clear(); + g.drawImage(dvdLogo, posX, posY, { + scale: 0.5 + }); + setTimeout(function () { + draw(); + }, 15); +} + +// Set the background to black +g.setBgColor(0, 0, 0); +// Start from purple +g.setColor(currentColor); +// Clear the screen +g.clear(); +// Start drawing +draw(); + +// Exit on button press +setWatch(Bangle.showLauncher, BTN, { repeat: false, edge: "falling" }); diff --git a/apps/dvdbounce/dvdbounce.png b/apps/dvdbounce/dvdbounce.png new file mode 100644 index 0000000000000000000000000000000000000000..a44e7a4ba4f2989bfb004e9ef2c292971fd2075d GIT binary patch literal 1350 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 c6ITz