From 208ac30a3931d6f880bc41db8af83bb7ed78a3c7 Mon Sep 17 00:00:00 2001 From: Brian Kumanchik Date: Fri, 27 May 2022 11:28:06 -0800 Subject: [PATCH] Add files via upload --- apps/invader/ChangeLog | 1 + apps/invader/README.md | 25 ++++++++ apps/invader/app-icon.js | 1 + apps/invader/app.js | 110 ++++++++++++++++++++++++++++++++++++ apps/invader/app.png | Bin 0 -> 665 bytes apps/invader/metadata.json | 14 +++++ apps/invader/screenshot.png | Bin 0 -> 1707 bytes 7 files changed, 151 insertions(+) create mode 100644 apps/invader/ChangeLog create mode 100644 apps/invader/README.md create mode 100644 apps/invader/app-icon.js create mode 100644 apps/invader/app.js create mode 100644 apps/invader/app.png create mode 100644 apps/invader/metadata.json create mode 100644 apps/invader/screenshot.png diff --git a/apps/invader/ChangeLog b/apps/invader/ChangeLog new file mode 100644 index 000000000..5560f00bc --- /dev/null +++ b/apps/invader/ChangeLog @@ -0,0 +1 @@ +0.01: New App! diff --git a/apps/invader/README.md b/apps/invader/README.md new file mode 100644 index 000000000..dc139bc9a --- /dev/null +++ b/apps/invader/README.md @@ -0,0 +1,25 @@ +# App Name + +Describe the app... + +Add screen shots (if possible) to the app folder and link then into this file with ![](.png) + +## Usage + +Describe how to use it + +## Features + +Name the function + +## Controls + +Name the buttons and what they are used for + +## Requests + +Name who should be contacted for support/update requests + +## Creator + +Your name diff --git a/apps/invader/app-icon.js b/apps/invader/app-icon.js new file mode 100644 index 000000000..dc7003c84 --- /dev/null +++ b/apps/invader/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwhHXAH4A/AH4A/AH4AYgAACC/4X/C/YbTFbYv/F/4rTAC4v/F/4vfC5YnPGaYv/F/4vLc7b3TF/4v/F/4v/F/4vTA5YAPE64v/F/4fTa55DXF/4v/AH4A/AH4A/AH4A/AHIA==")) diff --git a/apps/invader/app.js b/apps/invader/app.js new file mode 100644 index 000000000..aabc0022a --- /dev/null +++ b/apps/invader/app.js @@ -0,0 +1,110 @@ +// Brian Kumanchik +// Started 05-25-22 +// My Invader Demo, for Bangle.js 2, written JavaScript - using Espruino Web IDE + + + +// - variables ----------------------------------------- +// invader variables +var inv_x = 77; +var inv_y = 20; + +// turret variables +var tur_x = 77; +var tur_y = 138; + +// misc variables +var score = 999; +var lives = 3; +var game_over = false; + +// input(screen controller) variables +var BTNL, BTNR, BTNF; +var tap = {}; +// use tapping on screen for left and right +Bangle.on('drag',e=>tap=e); +BTNL = { read : _=>tap.b && tap.x < 88 && tap.y > 88}; +BTNR = { read : _=>tap.b && tap.x > 88 && tap.y > 88}; +BTNF = { read : _=>tap.b && tap.x > 88 && tap.y < 88}; + + + +// - sprites ------------------------------------------- +// invader sprites +var invader_a = + require("heatshrink").decompress(atob("kEgwkBiMRgACBAAQFFBJIPJBQgOKB55MGB64JCBoYQIB5yOKB+qvIA6pxHX5YPOAH4A/AH4A8A==")); +var invader_b = + require("heatshrink").decompress(atob("kEgxH+AAYJBAwgLQCaYfPB4oVHBpofnSpofvCY4HND9oAPD9IhTDpYfhd6IftN6IPtAH4A/AH4A/AH4A/AH4A9A=")); +var boom = + require("heatshrink").decompress(atob("kEgxH+AH4AFJYIHND9YTFAoYJJD9YRNMLKhbX/IRBV6JvND7p//f/4RHAoYJJD9a//AH4A/AH4A/AH4A9A==")); +var inv_shot = + require("heatshrink").decompress(atob("kEgxH+AH4A/ABaRBD/pB/Hv69/IP4A/AH4A/AH4A/AH4A/AH4AzA")); + +// turret sprites +var turret = + require("heatshrink").decompress(atob("kEgxH+AH4A/AH4A/AH4A/AH4A/ABcAgAf7DoIADD/4fxC4oAPD84dVEJIf/D/4f/D74=")); +var tur_exp_a = + require("heatshrink").decompress(atob("kEgxH+AH4A/AH4A/AH4A/AH4A/AAcAgATdD7YbJBJYLFAoYffDKqLXD6qlVB86lHLYoFDS5offA5YbRD8YZHABLbRD7aZLD5IlJD7YA=")); +var tur_exp_b = + require("heatshrink").decompress(atob("kEgxH+AH4A/AH4A/AH4A/AH4A/AAcAgATdD7YbJBJYLFAoYffDKqLXD6qlVB86lHLYoFDS5offA5YbRD8YZHABLbRD7aZLD5IlJD7YA=")); +var shot = + require("heatshrink").decompress(atob("kEgxH+AH4A/AH4A/ABcAgAf/D/4f9AH4A/AH4A/AH4A/AH4A/AGY")); + + + +// - setup stuff --------------------------------------- +function gameStart() { + setInterval(onFrame, 50); +} + + + +// - main loop ----------------------------------------- +function onFrame() { + // if not game over + if(game_over == false) { + g.clear(); + + + // check input (screen presses) + if(BTNL.read()) { + tur_x -= 5; + } + else if(BTNR.read()) { + tur_x += 5; + } + else if(BTNF.read()) { + tur_y -= 5; + } + + + // - draw sprites ---------------------------------- + // draw invader sprites + g.drawImage(invader_a, inv_x, inv_y); + //g.drawImage(invader_b, inv_x + 30, inv_y); + //g.drawImage(boom, inv_x + 60, inv_y); + //g.drawImage(inv_shot, inv_x - 30, inv_y); + + // draw turret sprites + g.drawImage(turret, tur_x, tur_y); + //g.drawImage(tur_exp_a, tur_x + 30, tur_y); + //g.drawImage(tur_exp_b, tur_x + 60, tur_y); + //g.drawImage(shot, tur_x - 30, tur_y); + + + // - draw text ------------------------------------- + g.setFont("4x6", 2); + g.setColor(0,0,0); + g.drawString("SCORE:" + score ,5,5); // + g.drawString("LIVES:" + lives ,117,5); // + + + g.flip(); + } +} + + + +gameStart(); + + diff --git a/apps/invader/app.png b/apps/invader/app.png new file mode 100644 index 0000000000000000000000000000000000000000..3b9f822056531de84e9fe8641d57c4ab7e43c300 GIT binary patch literal 665 zcmV;K0%rY*P)EX>4Tx04R}tkv&MmKpe$iQ%gl!MC>5ykfAzRkSgLRRV;#q(pG5I!Q|2}Xws0h zxHt-~1qVMCs}3&Cx;nTDg5U>;qmz@Oi)x!1rQVA7g-j7icvs>-*TUS|@<_8Mx9q{%RAL{Up87 z(ZWYS|2A-O-O=Pd;Bp5TdeS9BvL!D~p-=$c&*+n`u^?e6X0GwuF<0Hy{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2j&GE5i~ng^xj1P005OqL_t(&-tCx63cw%?L{0Jj zS5DUz#L#@&z?+>Q!ox|%D5|QXv98fv0000$b4}|;5qYemyYJicu@C@NHL!ZpTN6<= zg@pj{wqNUWdi89!$N>Pp&ViHXPr2aD6>CmlApoLspt{dT{gk(LU(SP%HFop!|0#d)WR+w3 zw

r=6?}^4FYys8yf7tJ}v&lbnU=$u^$Exjz9jmU;O*8%J+XiE_kM95NciAm|UGv1ecuvFpd-u}n8U9}_IREcK z?azku|5(odJF?EM-fYI^_X_26&%gN@U;FRHuU@D5U#o5JZ~lFL-?{#0f4|CBlrU}9 z|M2Sb`F$4_a~GHXKau?HPnrGyH$VIGKA!v6@V}Vx{J)mIxC2=Z>%XThwsr59KP!1R zyI1bM?4wtIb~E|K&ez^vu>4))`nn3?4_RH=$2or-%{4u6as7ge){oz8=UeQ*b+!G= z^yY}uy7gCXewMxKBvX63pzPlZ^Pe}v?P~dLeud8EiaL<4|M1S|b8O#IneD3In>R@@ z&aG{a_@t#IZ&Reug?*57nyk=e5)eSg^JMBR41 z2Xmgjw7(%xz!!VK(t9!&6O-P8=$XO-1?Mg;X=-TTei8PJg=NlWla&ez514jMwPa*` zuH&o4!Lg$uFV)XsRLf|H4dn#GuWl>XKfm90{(0$bwd+Nh_C2iPu8`l<@crh#z3snu z9kMP2WsB4HYMd3y@77;rx|gBzpmzt;KF06Y+s(HN{9dz{Ievp}Rr_9pOWQ>!S1`?E z`Th4L)4m3AtB?cS6LudeU2Rxz$YPUU_T%e~Lo4|CKbGE(2sx0v_;P%|ZjaChR})5k zhFz@@4!27>8pIP=_dv5QFuUho2Il4l(GN_wmN~QRVbFfSy2ZDhqe6Ji#_t>)KjhM* f%{cM#{;)rs6=x$HfA9&g_F?dJ^>bP0l+XkKTNVEM literal 0 HcmV?d00001