//ADICIONAR NAVE-MÃE!!! //A função posiciona a wave no meio de tela de largura 640. Ainda é preciso torná-la agóstica a resolução //O valor do campo velocidade precisa ser um divisor de (largura do display - largura wave)/2 para que colida com o limite direito da tela //Do contrário, a wave irá atravesá-los antes de voltar. //Uma outra possibilidade é tornar o limite o wave* create_wave(int y_inicial, int n_aliens, SOUND_MANAGER* sound_mng) { srand(time(NULL)); struct wave* obj = (struct wave*) malloc(sizeof(struct wave)); obj->x = 72; obj->y = y_inicial; obj->anima_contador = 0; obj->ritmo = ALIEN_RHYTHM; obj->velocidade = ALIEN_SPEED; obj->n_aliens = n_aliens; obj->wave_width = (n_aliens * ALIEN_SIZE) + ((n_aliens - 1) * ALIEN_SPACING); //create squids row int i; int j; obj->linhas = 5; obj->sound_mng = sound_mng; obj->sound_count = 0; obj->squids = (alien**) malloc (sizeof(alien*)*obj->n_aliens); for(i = 0; i < obj->n_aliens; i++) { obj->squids[i] = create_alien(obj->x + i*(ALIEN_SIZE + ALIEN_SPACING), obj->y, SQUID, obj->sound_mng); } //Create 2 jellyfish rows for(i = 0; i < 2; i++) { obj->jellyfishes[i] = (alien**) malloc (sizeof(alien*)*obj->n_aliens); for(j = 0; j < obj->n_aliens; j++) { obj->jellyfishes[i][j] = create_alien(obj->x + j*(ALIEN_SIZE + ALIEN_SPACING), obj->y + (i + 1) * (ALIEN_SIZE), JELLYFISH, obj->sound_mng); } } //Create 2 crab rows for(i = 0; i < 2; i++) { obj->crabs[i] = (alien**) malloc (sizeof(alien*)*obj->n_aliens); for(j = 0; j < obj->n_aliens; j++) { obj->crabs[i][j] = create_alien(obj->x + j*(ALIEN_SIZE + ALIEN_SPACING), obj->y + (i + 3) * (ALIEN_SIZE), CRAB, obj->sound_mng); } } for (int i=0; i<5; i++){ obj->aliens_mortos[i]=0; } for (int i=0; i<MAX_MISSEIS; i++){ obj->missil[i]=NULL; } obj->missil_atual = 0; return obj; }
//ADICIONAR NAVE-MÃE!!! //A função posiciona a wave no meio de tela de largura 640. Ainda é preciso torná-la agóstica a resolução //O valor do campo velocidade precisa ser um divisor de (largura do display - largura wave)/2 para que colida com o limite direito da tela //Do contrário, a wave irá atravesá-los antes de voltar. //Uma outra possibilidade é tornar o limite o wave* create_wave(int y_inicial, int n_aliens) { struct wave* obj = (struct wave*) malloc(sizeof(struct wave)); obj->x = 72; obj->y = y_inicial; obj->anima_contador = 0; obj->ritmo = 20; obj->velocidade = ALIEN_SPEED; obj->n_aliens = n_aliens; obj->wave_width = (n_aliens * ALIEN_SIZE) + ((n_aliens - 1) * ALIEN_SPACING); //create squids row int i; int j; obj->linhas = 5; obj->squids = (alien**) malloc (sizeof(alien*)*obj->n_aliens); for(i = 0; i < obj->n_aliens; i++) { obj->squids[i] = create_alien(obj->x + i*(ALIEN_SIZE + ALIEN_SPACING), obj->y, SQUID); } //Create 2 jellyfish rows for(i = 0; i < 2; i++) { obj->jellyfishes[i] = (alien**) malloc (sizeof(alien*)*obj->n_aliens); for(j = 0; j < obj->n_aliens; j++) { obj->jellyfishes[i][j] = create_alien(obj->x + j*(ALIEN_SIZE + ALIEN_SPACING), obj->y + (i + 1) * (ALIEN_SIZE), JELLYFISH); } } //Create 2 crab rows for(i = 0; i < 2; i++) { obj->crabs[i] = (alien**) malloc (sizeof(alien*)*obj->n_aliens); for(j = 0; j < obj->n_aliens; j++) { obj->crabs[i][j] = create_alien(obj->x + j*(ALIEN_SIZE + ALIEN_SPACING), obj->y + (i + 3) * (ALIEN_SIZE), CRAB); } } for (int i=0; i<5; i++){ obj->aliens_mortos[i]=0; } return obj; }