Add files via upload

pull/1903/head
Brian Kumanchik 2022-05-28 12:22:44 -08:00 committed by GitHub
parent f9df01f8cd
commit f3ff034439
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 89 additions and 25 deletions

View File

@ -6,12 +6,6 @@
// resolution 176x176
// to do:
// random invader restart x
// stop auto fire
// - variables -----------------------------------------
// invader variables
var inv_x = 77;
@ -46,9 +40,12 @@ var turret_anim_delay = 3; // turret explode animation delay
var explosion_play = false;
// misc variables
var score = 0;
var lives = 3;
var game_over = false;
var score = 0; // starting score
var lives = 3; // starting lives
var game_state = 0; // game state - 0 = game not started, 1 = game running, 3 = game over
var ang = 0.1;
var start_been_pressed = false; // stops double press on restart
var fire_been_pressed = false; // stops auto fire
// input(screen controller) variables
var BTNL, BTNR, BTNF, BTNS; // button - left, right, fire, start
@ -184,8 +181,9 @@ function invader_hit() {
been_hit = false;
bx = -32; // move boom off screen (following invader)
by = -32;
//inv_x = rand() % (464 - 16) + 4; // move invader to random x position
inv_x = 77; // move invader back up after being hit
// to gerate a random rounded number between 10 and 142;
inv_x = Math.floor(Math.random() * 142) + 10;
//inv_x = 77; // move invader back up after being hit
inv_y = 20; // move invader back up after being hit
i_dir = 1; // reset invader direction
}
@ -199,11 +197,68 @@ function gameStart() {
}
// - main loop -----------------------------------------
// - main loop -------------------------------------------------------------
function onFrame() {
// game not started state (title screen)
if(game_state == 0) {
g.clear();
if (!(BTNS.read())) {
start_been_pressed = false; // stops double press on restart
}
// draw text during game over state
g.setFont("4x6", 4); // set font and size x 2
g.setColor(0,1,0); // set color (black)
g.drawString("INVADER", 33, 55);
// just animate invader
// invader anim code
i_anim_delay -= 1;
if(i_anim_delay < 0) {
i_anim_delay = 25;
inv_frame += 1;
if (inv_frame > 2) {
inv_frame = 1;
}
}
// draw sprites during game over state
//ang += 0.1;
//g.drawImage(invader_a, 88, 98, {scale:4, rotate:ang});
if(inv_frame == 1) {
g.drawImage(invader_a, 88-22, 85, {scale:4});
}
else if(inv_frame == 2) {
g.drawImage(invader_b, 88-22, 85, {scale:4});
}
// reset stuff
if(BTNS.read() && !(start_been_pressed)) {
turret_been_hit = false;
tur_x = 77; // reset turret to center of screen
tur_y = 148; // reset turret y
inv_x = 77; // reset invader to center of screen
inv_y = 20; // reset invader back to top
i_dir = 1; // reset invader direction
lives = 3; // reset lives
score = 0; // reset score
explosion_play = false;
game_state = 1;
}
g.flip();
}
// game over state
if(game_over) {
if(game_state == 3) {
g.clear();
// draw text during game over state
@ -232,7 +287,8 @@ function onFrame() {
lives = 3; // reset lives
score = 0; // reset score
explosion_play = false;
game_over = false;
game_state = 0;
start_been_pressed = true;
}
@ -241,9 +297,15 @@ function onFrame() {
// not game over state (game running)
if(!(game_over)) {
if(game_state == 1) {
g.clear();
if (!(BTNF.read())) {
fire_been_pressed = false; // stops auto fire
}
// call function to move and animate invader
move_anim_inv();
@ -258,8 +320,9 @@ function onFrame() {
else if(BTNR.read() && tur_x <= 140 && !(turret_been_hit)) {
tur_x += 6;
}
else if(BTNF.read() && !(turret_been_hit)) {
else if(BTNF.read() && !(turret_been_hit) && !(fire_been_pressed) && !(shot_fired)) {
shot_fired = true;
fire_been_pressed = true; // stops auto fire
sx=tur_x + 12;
sy=tur_y - 7;
}
@ -301,7 +364,7 @@ function onFrame() {
lives -= 1;
if (lives == 0) {
game_over = true;
game_state = 3;
}
turret_been_hit = true;
}
@ -368,7 +431,8 @@ function onFrame() {
g.flip();
}
}
} // end main loop ---------------------------------------------------------
gameStart();

View File

@ -1,7 +1,7 @@
{ "id": "invader",
"name": "Invader",
"shortName":"Invader",
"version":"0.05",
"version":"0.06",
"description": "A Space Invader game-like demo - work in progress",
"icon": "app.png",
"screenshots" : [ { "url":"screenshot_0.png" }, { "url":"screenshot_1.png" }, { "url":"screenshot_2.png" } ],