fix: do not overflow fish pos

This commit is contained in:
valvin 2024-02-17 22:39:15 +01:00
parent 25e84696da
commit 81de1c82de
1 changed files with 12 additions and 11 deletions

View File

@ -9,8 +9,8 @@
#include "sound.h" #include "sound.h"
const bool SOUND_ENABLE = false; const bool SOUND_ENABLE = false;
const short initX = 0; const short INIT_X = 0;
const short initY = 48; const short INIT_Y = 48;
const unsigned long display_interval = 100; const unsigned long display_interval = 100;
const unsigned long nunchuk_interval = 100; const unsigned long nunchuk_interval = 100;
@ -21,9 +21,9 @@ U8G2_ST7920_128X64_2_SW_SPI u8g2(U8G2_R0, /* clock=*/ 2, /* data=*/ 10, /* cs=*/
ArduinoNunchuk nunchuk = ArduinoNunchuk(); ArduinoNunchuk nunchuk = ArduinoNunchuk();
Tone tone1; Tone tone1;
short posX = initX; short posX = INIT_X;
short posY = initY; short posY = INIT_Y;
unsigned int nextLaneY = initY - 16; unsigned int nextLaneY = INIT_Y - 16;
unsigned long last_display = millis(); unsigned long last_display = millis();
unsigned long last_nunchuck = millis(); unsigned long last_nunchuck = millis();
unsigned long last_note = millis(); unsigned long last_note = millis();
@ -110,9 +110,10 @@ void display_game() {
} }
void compute_fishes_position(){ void compute_fishes_position(){
short fish_step = (200 + score)/100;
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
if(fishes[i][0] != NULL){ if(fishes[i][0] != NULL){
if(fishes[i][0] <= 2) if(fishes[i][0] <= fish_step)
{ {
fishes[i][0] = 128; fishes[i][0] = 128;
score = score - 10; score = score - 10;
@ -128,7 +129,7 @@ void compute_fishes_position(){
} }
} }
else{ else{
fishes[i][0] = fishes[i][0] - (200 + score)/100; fishes[i][0] = fishes[i][0] - fish_step;
} }
//does carrot eat the fish //does carrot eat the fish
if( (posX > (fishes[i][0] - 8) && posX < (fishes[i][0] + 8) ) && (posY > (fishes[i][1] - 8) && posY < (fishes[i][1] + 8) )){ if( (posX > (fishes[i][0] - 8) && posX < (fishes[i][0] + 8) ) && (posY > (fishes[i][1] - 8) && posY < (fishes[i][1] + 8) )){
@ -148,11 +149,11 @@ void compute_cat_position() {
posX = posX + 2; posX = posX + 2;
} }
else { else {
posX = initX; posX = INIT_X;
if (posY < 48) { if (posY < 48) {
posY = posY + 16; posY = posY + 16;
} else { } else {
posY = initY; posY = INIT_Y;
} }
} }
} }
@ -258,8 +259,8 @@ void loop(void) {
if(game_init){ if(game_init){
game_init = false; game_init = false;
//set default pos to avoid issue //set default pos to avoid issue
posX = initX; posX = INIT_X;
posY = initY; posY = INIT_Y;
} }
} }
} }