Add files via upload
parent
e6fe232116
commit
94d97f8d8d
|
|
@ -3,18 +3,40 @@
|
||||||
// My Invader Demo, for Bangle.js 2, written JavaScript - using Espruino Web IDE
|
// My Invader Demo, for Bangle.js 2, written JavaScript - using Espruino Web IDE
|
||||||
|
|
||||||
|
|
||||||
|
// resolution 176x176
|
||||||
|
|
||||||
|
|
||||||
|
// to do:
|
||||||
|
// add buzz
|
||||||
|
|
||||||
|
|
||||||
// - variables -----------------------------------------
|
// - variables -----------------------------------------
|
||||||
// invader variables
|
// invader variables
|
||||||
var inv_x = 77;
|
var inv_x = 77;
|
||||||
var inv_y = 20;
|
var inv_y = 20;
|
||||||
|
var i_anim_delay = 10; // invader animation (and move) delay
|
||||||
|
var inv_frame = 1; // invader start animation frame
|
||||||
|
var ix_speed = 6; // march speed
|
||||||
|
var i_dir = 1; // 1 = right, 0 = left
|
||||||
|
var been_hit = false; // invader hit state
|
||||||
|
//// shoot variables
|
||||||
|
var inv_shot_x = -32;
|
||||||
|
var inv_shot_y = -32;
|
||||||
|
var inv_fire_pause = 30;
|
||||||
|
var inv_fired = false; // invader fired state
|
||||||
|
//// explode variables
|
||||||
|
var been_hit = false; // invader hit state
|
||||||
|
var bx = -32; // blast x
|
||||||
|
var by = -32; // blast y
|
||||||
|
var blast_delay = 60; // invader blast delay - pause after explosion
|
||||||
|
var boom_play = false;
|
||||||
|
|
||||||
// turret variables
|
// turret variables
|
||||||
var tur_x = 77;
|
var tur_x = 77;
|
||||||
var tur_y = 138;
|
var tur_y = 148;
|
||||||
|
|
||||||
// misc variables
|
// misc variables
|
||||||
var score = 999;
|
var score = 0;
|
||||||
var lives = 3;
|
var lives = 3;
|
||||||
var game_over = false;
|
var game_over = false;
|
||||||
|
|
||||||
|
|
@ -28,27 +50,81 @@ BTNR = { read : _=>tap.b && tap.x > 88 && tap.y > 88};
|
||||||
BTNF = { read : _=>tap.b && tap.x > 88 && tap.y < 88};
|
BTNF = { read : _=>tap.b && tap.x > 88 && tap.y < 88};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// - sprites -------------------------------------------
|
// - sprites -------------------------------------------
|
||||||
// invader sprites
|
// invader sprites
|
||||||
var invader_a =
|
var invader_a =
|
||||||
require("heatshrink").decompress(atob("kEgwkBiMRgACBAAQFFBJIPJBQgOKB55MGB64JCBoYQIB5yOKB+qvIA6pxHX5YPOAH4A/AH4A8A=="));
|
require("heatshrink").decompress(atob("hcIwkBiIBBAQoECCQQFBgEQAIMBEhUBDoYWDAYI="));
|
||||||
var invader_b =
|
var invader_b =
|
||||||
require("heatshrink").decompress(atob("kEgxH+AAYJBAwgLQCaYfPB4oVHBpofnSpofvCY4HND9oAPD9IhTDpYfhd6IftN6IPtAH4A/AH4A/AH4A/AH4A9A="));
|
require("heatshrink").decompress(atob("hcIwkBiIBBAQMQAoQEBgISCAYUQAIQAEB4YEBEAgEDAYIA=="));
|
||||||
var boom =
|
var boom =
|
||||||
require("heatshrink").decompress(atob("kEgxH+AH4AFJYIHND9YTFAoYJJD9YRNMLKhbX/IRBV6JvND7p//f/4RHAoYJJD9a//AH4A/AH4A/AH4A9A=="));
|
require("heatshrink").decompress(atob("hcJwkBiMQAIURgMQAgIKBAIICFAIMAAwIWBBAYSIEAgrDiA="));
|
||||||
var inv_shot =
|
var inv_shot =
|
||||||
require("heatshrink").decompress(atob("kEgxH+AH4A/ABaRBD/pB/Hv69/IP4A/AH4A/AH4A/AH4A/AH4AzA"));
|
require("heatshrink").decompress(atob("gcFwkBiERiAABAYQ"));
|
||||||
|
|
||||||
// turret sprites
|
// turret sprites
|
||||||
var turret =
|
var turret =
|
||||||
require("heatshrink").decompress(atob("kEgxH+AH4A/AH4A/AH4A/AH4A/ABcAgAf7DoIADD/4fxC4oAPD84dVEJIf/D/4f/D74="));
|
require("heatshrink").decompress(atob("h8IwkBiIABAYYACgAHFiEABggADCAInFgITBAAgOPA=="));
|
||||||
var tur_exp_a =
|
var tur_exp_a =
|
||||||
require("heatshrink").decompress(atob("kEgxH+AH4A/AH4A/AH4A/AH4A/AAcAgATdD7YbJBJYLFAoYffDKqLXD6qlVB86lHLYoFDS5offA5YbRD8YZHABLbRD7aZLD5IlJD7YA="));
|
require("heatshrink").decompress(atob("h8IwkBiMRiACBAAwJEiAABBQgZCAAkAiAJBBoIUBgIABBgQACDIQ9ECQIA=="));
|
||||||
var tur_exp_b =
|
var tur_exp_b =
|
||||||
require("heatshrink").decompress(atob("kEgxH+AH4A/AH4A/AH4A/AH4A/AAcAgATdD7YbJBJYLFAoYffDKqLXD6qlVB86lHLYoFDS5offA5YbRD8YZHABLbRD7aZLD5IlJD7YA="));
|
require("heatshrink").decompress(atob("h8IwkBiIBBAAUBiADCiMQAwQFDCIYXEB4IABgMAEYQXBiEAAQIQBAoIABDAQUCAAIVBA"));
|
||||||
var shot =
|
var shot =
|
||||||
require("heatshrink").decompress(atob("kEgxH+AH4A/AH4A/ABcAgAf/D/4f9AH4A/AH4A/AH4A/AH4A/AGY"));
|
require("heatshrink").decompress(atob("gMDwkBAoIA=="));
|
||||||
|
|
||||||
|
|
||||||
|
// function to move and animate invader
|
||||||
|
function move_anim_inv() {
|
||||||
|
// invader anim code
|
||||||
|
i_anim_delay -= 1;
|
||||||
|
if ((i_anim_delay < 0) && !(been_hit)) {
|
||||||
|
i_anim_delay = 10;
|
||||||
|
|
||||||
|
inv_frame += 1;
|
||||||
|
if (inv_frame > 2) {
|
||||||
|
inv_frame = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// move right
|
||||||
|
if (i_dir == 1){
|
||||||
|
inv_x += ix_speed;
|
||||||
|
if (inv_x >= 142) {
|
||||||
|
inv_y += 8; // step down
|
||||||
|
i_dir = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// move left
|
||||||
|
if (i_dir < 1){
|
||||||
|
inv_x -= ix_speed;
|
||||||
|
if (inv_x <= 10) {
|
||||||
|
inv_y += 8; // step down
|
||||||
|
i_dir = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// function to make invader fire
|
||||||
|
function invader_fire() {
|
||||||
|
inv_fire_pause -= 1;
|
||||||
|
|
||||||
|
if (!(inv_fired)) { // so once invader shot is fired it doesn't follow the invader still
|
||||||
|
inv_shot_x = inv_x + 8;
|
||||||
|
inv_shot_y = inv_y + 18;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (inv_fire_pause < 0) {
|
||||||
|
inv_fired = true;
|
||||||
|
inv_shot_y += 8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -64,32 +140,67 @@ function onFrame() {
|
||||||
// if not game over
|
// if not game over
|
||||||
if(game_over == false) {
|
if(game_over == false) {
|
||||||
g.clear();
|
g.clear();
|
||||||
|
|
||||||
|
// call function to move and animate invader
|
||||||
|
move_anim_inv();
|
||||||
|
|
||||||
|
// call function to make invader fire
|
||||||
|
invader_fire();
|
||||||
|
|
||||||
|
|
||||||
// check input (screen presses)
|
// check input (screen presses)
|
||||||
if(BTNL.read()) {
|
if(BTNL.read() && tur_x >= 12) {
|
||||||
tur_x -= 5;
|
tur_x -= 6;
|
||||||
}
|
}
|
||||||
else if(BTNR.read()) {
|
else if(BTNR.read() && tur_x <= 140) {
|
||||||
tur_x += 5;
|
tur_x += 6;
|
||||||
}
|
}
|
||||||
else if(BTNF.read()) {
|
else if(BTNF.read()) {
|
||||||
tur_y -= 5;
|
tur_y -= 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// check for invader shot going off screen before allowing to fire again
|
||||||
|
if (inv_shot_y > 150
|
||||||
|
) {
|
||||||
|
inv_fired = false;
|
||||||
|
inv_shot_x = inv_x - 1;
|
||||||
|
inv_shot_y = inv_y + 7;
|
||||||
|
inv_fire_pause = 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// - draw sprites ----------------------------------
|
// - draw sprites ----------------------------------
|
||||||
// draw invader sprites
|
// draw invader sprites
|
||||||
g.drawImage(invader_a, inv_x, inv_y);
|
if(inv_frame == 1) {
|
||||||
//g.drawImage(invader_b, inv_x + 30, inv_y);
|
g.drawImage(invader_a, inv_x, inv_y, {scale:2});
|
||||||
//g.drawImage(boom, inv_x + 60, inv_y);
|
}
|
||||||
//g.drawImage(inv_shot, inv_x - 30, inv_y);
|
else if(inv_frame == 2) {
|
||||||
|
g.drawImage(invader_b, inv_x, inv_y, {scale:2});
|
||||||
|
}
|
||||||
|
//g.drawImage(invader_b, inv_x + 30, inv_y, {scale:2});
|
||||||
|
//g.drawImage(boom, inv_x + 60, inv_y, {scale:2});
|
||||||
|
// - invader shot
|
||||||
|
if (inv_fired) {
|
||||||
|
//DrawTexture(inv_shot, inv_shot_x, inv_shot_y, WHITE);
|
||||||
|
g.drawImage(inv_shot, inv_shot_x, inv_shot_y, {scale:2});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//DrawTexture(inv_shot, -32, -32, WHITE);
|
||||||
|
g.drawImage(inv_shot, -32, -32, {scale:2});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// draw turret sprites
|
// draw turret sprites
|
||||||
g.drawImage(turret, tur_x, tur_y);
|
g.drawImage(turret, tur_x, tur_y, {scale:2});
|
||||||
//g.drawImage(tur_exp_a, tur_x + 30, tur_y);
|
//g.drawImage(tur_exp_a, tur_x + 30, tur_y, {scale:2});
|
||||||
//g.drawImage(tur_exp_b, tur_x + 60, tur_y);
|
//g.drawImage(tur_exp_b, tur_x + 60, tur_y, {scale:2});
|
||||||
//g.drawImage(shot, tur_x - 30, tur_y);
|
//g.drawImage(shot, tur_x - 30, tur_y, {scale:2});
|
||||||
|
|
||||||
|
|
||||||
// - draw text -------------------------------------
|
// - draw text -------------------------------------
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue