feat: add new life fish type

This commit is contained in:
valvin 2024-03-09 18:40:32 +01:00
parent d427542597
commit b8d78b2620
3 changed files with 35 additions and 6 deletions

View File

@ -12,6 +12,11 @@ PROGMEM const unsigned char fish_reverse[] {
0xec, 0x7f, 0xfe, 0x3f, 0xfc, 0x3f, 0xf8, 0x77, 0xf0, 0x67, 0xe0, 0x07, 0xec, 0x7f, 0xfe, 0x3f, 0xfc, 0x3f, 0xf8, 0x77, 0xf0, 0x67, 0xe0, 0x07,
0x00, 0x0e, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00 }; 0x00, 0x0e, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00 };
PROGMEM const unsigned char fish_life[] {
0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x07,0xf8,0x8f,0xfc,0xdf,0x7e,0x7d,0xb7,
0x7a,0xdf,0xf7,0xbf,0x7b,0x7e,0x7d,0xfc,0xde,0xf8,0x8f,0xf0,0x07,0x00,0x00,
0x00,0x00 };
PROGMEM const unsigned char heart[]{ PROGMEM const unsigned char heart[]{
0x1b,0x1b,0x1f,0x1f,0x0e 0x1b,0x1b,0x1f,0x1f,0x0e
}; };

View File

@ -36,12 +36,13 @@ unsigned long next_note = millis();
short notes_index = 0; short notes_index = 0;
short intro_size = sizeof(notes_intro)/sizeof(notes_intro[0]); short intro_size = sizeof(notes_intro)/sizeof(notes_intro[0]);
enum FishType { FT_NORMAL, FT_LIFE, FT_BOMB};
const short NUM_FISHES = 12; const short NUM_FISHES = 12;
short fishes[NUM_FISHES][2] = { short fishes[NUM_FISHES][3] = {
{0,1},{0,1},{0,1}, {0,1,FT_NORMAL},{0,1, FT_NORMAL},{0,1,FT_NORMAL},
{0,16},{0,16},{0,16}, {0,16,FT_NORMAL},{0,16,FT_NORMAL},{0,16,FT_NORMAL},
{0,32},{0,32},{0,32}, {0,32,FT_NORMAL},{0,32,FT_NORMAL},{0,32,FT_NORMAL},
{0,48},{0,48},{0,48} {0,48,FT_NORMAL},{0,48,FT_LIFE},{0,48,FT_NORMAL}
}; };
bool game_init = true; bool game_init = true;
bool jump = false; bool jump = false;
@ -135,7 +136,12 @@ void display_game() {
for (int i = 0; i < NUM_FISHES; i++) { for (int i = 0; i < NUM_FISHES; i++) {
if(fishes[i][0] != NULL){ if(fishes[i][0] != NULL){
if(fishes[i][0] < MAX_X){ if(fishes[i][0] < MAX_X){
u8g2.drawXBMP(fishes[i][0], fishes[i][1], 16, 16, fish_reverse); if(fishes[i][2] == FT_NORMAL){
u8g2.drawXBMP(fishes[i][0], fishes[i][1], 16, 16, fish_reverse);
}
else if(fishes[i][2] == FT_LIFE){
u8g2.drawXBMP(fishes[i][0], fishes[i][1], 16, 16, fish_life);
}
} }
} }
} }
@ -195,7 +201,19 @@ void compute_fishes_position(){
if( (posX > (fishes[i][0] - 8) && posX < (fishes[i][0] + 8) ) if( (posX > (fishes[i][0] - 8) && posX < (fishes[i][0] + 8) )
&& (posY > (fishes[i][1] - 8) && posY < (fishes[i][1] + 8) ) && (posY > (fishes[i][1] - 8) && posY < (fishes[i][1] + 8) )
){ ){
if(fishes[i][2] == FT_LIFE){
lives = lives + 1;
}
fishes[i][0] = random(128,255); fishes[i][0] = random(128,255);
//random type
short rdm_type = random(1,100);
if(rdm_type < 90){
fishes[i][2] = FT_NORMAL;
}
else{
fishes[i][2] = FT_LIFE;
}
play_sound(NOTE_B5,100); play_sound(NOTE_B5,100);
score = score + 10; score = score + 10;
if (score > max_score){ if (score > max_score){

View File

@ -0,0 +1,6 @@
#define _width 16
#define _height 16
static char _bits[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x07,0xf8,0x8f,0xfc,0xdf,0x7e,0x7d,0xb7,
0x7a,0xdf,0xf7,0xbf,0x7b,0x7e,0x7d,0xfc,0xde,0xf8,0x8f,0xf0,0x07,0x00,0x00,
0x00,0x00 };