//Move os invaders baseado na sua direção atual //Move invaders based on there current direction int move_invaders(int speed) { set_invaders_speed(); int i,j; switch (invaders.direction) { case left: for (i = 0; i < 10; i++) { for (j = 0; j < 5; j++) { if (invaders.enemy[j][i].alive == 1) { if (invaders.enemy[j][i].hitbox.x <= 0) { invaders.direction = right; move_invaders_down(); return 0; } if (invaders.state_time + invaders.state_speed < SDL_GetTicks()) { invaders.state_time = SDL_GetTicks(); if (invaders.state == 1) { invaders.state = 0; } else { invaders.state = 1; } } //altera a velocidade em numero de pixels dos invaders //move invader speed number of pixels invaders.enemy[j][i].hitbox.x -= invaders.speed; } } } break; case right: for (i = 9; i >= 0; i--) { for (j = 0; j < 5; j++) { if (invaders.enemy[j][i].alive == 1) { if (invaders.enemy[j][i].hitbox.x + E_WIDTH >= WIDTH) { invaders.direction = left; move_invaders_down(); return 0; } if (invaders.state_time + invaders.state_speed < SDL_GetTicks()) { invaders.state_time = SDL_GetTicks(); if (invaders.state == 1) { invaders.state = 0; } else { invaders.state = 1; } } invaders.enemy[j][i].hitbox.x += invaders.speed; } } } break; default: break; } return 0; }
//Move invaders based on there current direction int move_invaders(int speed) { set_invaders_speed(); int i,j; switch (invaders.direction) { case left: for (i = 0; i < ROW_INVADERS; i++) { for (j = 0; j < COL_INVADERS; j++) { if (invaders.enemy[i][j].alive == 1) { if (invaders.enemy[i][j].hitbox.x <= 0) { invaders.direction = right; move_invaders_down(); return 0; } if (invaders.state_time + invaders.state_speed < SDL_GetTicks()) { invaders.state_time = SDL_GetTicks(); if (invaders.state == 1) { invaders.state = 0; } else { invaders.state = 1; } } //move invader speed number of pixels invaders.enemy[i][j].hitbox.x -= invaders.speed; } } } break; case right: for (i = 0; i < ROW_INVADERS; i++) { for (j = 0; j < COL_INVADERS; j++) { if (invaders.enemy[i][j].alive == 1) { if (invaders.enemy[i][j].hitbox.x + E_WIDTH >= WIDTH) { invaders.direction = left; move_invaders_down(); return 0; } if (invaders.state_time + invaders.state_speed < SDL_GetTicks()) { invaders.state_time = SDL_GetTicks(); if (invaders.state == 1) { invaders.state = 0; } else { invaders.state = 1; } } invaders.enemy[i][j].hitbox.x += invaders.speed; } } } break; default: break; } return 0; }