From 648cc11fdc8ba8ef678295ed8d72e0956c97e079 Mon Sep 17 00:00:00 2001 From: Hugh Barney Date: Sun, 20 Aug 2023 16:15:34 +0100 Subject: [PATCH] Asteroids, switched to 7 point astroid polygon --- apps/astroid/ChangeLog | 3 ++- apps/astroid/asteroids.js | 18 ++++++++++++++---- apps/astroid/metadata.json | 4 ++-- apps/astroid/screenshot.png | Bin 0 -> 2140 bytes apps/astroid/screenshot_asteroids.png | Bin 1498 -> 0 bytes 5 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 apps/astroid/screenshot.png delete mode 100644 apps/astroid/screenshot_asteroids.png diff --git a/apps/astroid/ChangeLog b/apps/astroid/ChangeLog index 8f1d5e355..0e2f13745 100644 --- a/apps/astroid/ChangeLog +++ b/apps/astroid/ChangeLog @@ -1,4 +1,5 @@ 0.02: Add "ram" keyword to allow 2v06 Espruino builds to cache function that needs to be fast 0.03: Bangle 2 support -0.04: Increase size if ship, asteroids and fonts for better readability +0.04: Increase size of ship, asteroids and fonts for better readability 0.05: improve collision detect for larger ship v astroid +0.06: added, 7 point asteroid ploygon, made ship solid, rather than outline diff --git a/apps/astroid/asteroids.js b/apps/astroid/asteroids.js index 862b6f368..076e9a4c3 100644 --- a/apps/astroid/asteroids.js +++ b/apps/astroid/asteroids.js @@ -48,10 +48,9 @@ var lastFrame; function gameStop() { running = false; - //g.clear(); g.setFont('Vector', W/7); g.setFontAlign(0,0); - g.drawString("Game Over!", W/2, H/2); + g.drawString("Game Over", W/2, H/2); g.flip(); } @@ -116,7 +115,7 @@ function onFrame() { g.setFont('Vector', 16); g.drawString(score,W-20,16); var rs = Math.PI*0.8; - g.drawPoly([ + g.fillPoly([ ship.x+Math.cos(ship.r)*SS, ship.y+Math.sin(ship.r)*SS, ship.x+Math.cos(ship.r+rs)*SL, ship.y+Math.sin(ship.r+rs)*SL, ship.x+Math.cos(ship.r-rs)*SL, ship.y+Math.sin(ship.r-rs)*SL, @@ -147,7 +146,18 @@ function onFrame() { ast.forEach(function(a) { a.x += a.vx*d; a.y += a.vy*d; - g.drawCircle(a.x, a.y, a.rad); + //g.drawCircle(a.x, a.y, a.rad); + // a 7 point asteroid with rough circle radius of scale 2 + g.drawPoly([ + a.x , a.y - 1.5 * a.rad, + a.x + a.rad , a.y , + a.x + a.rad/2 , a.y , + a.x + a.rad/2 , a.y + a.rad/2 , + a.x , a.y + a.rad , + a.x - a.rad , a.y , + a.x - a.rad , a.y - a.rad + ],true); + if (a.x<0) a.x+=W; if (a.y<0) a.y+=H; if (a.x>=W) a.x-=W; diff --git a/apps/astroid/metadata.json b/apps/astroid/metadata.json index e0f4425d8..f73feec43 100644 --- a/apps/astroid/metadata.json +++ b/apps/astroid/metadata.json @@ -1,10 +1,10 @@ { "id": "astroid", "name": "Asteroids!", - "version": "0.05", + "version": "0.06", "description": "Retro asteroids game", "icon": "asteroids.png", - "screenshots": [{"url":"screenshot_asteroids.png"}], + "screenshots": [{"url":"screenshot.png"}], "tags": "game", "supports": ["BANGLEJS","BANGLEJS2"], "allow_emulator": true, diff --git a/apps/astroid/screenshot.png b/apps/astroid/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..81120267dba73cd07b48925bc5c5b04129c75ca4 GIT binary patch literal 2140 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 MUHx3vIVCg!06kBM&j0`b