void menuChoise ( ){ float flotante = 0; double angulo; switch (value){ case 0: //set camera position gluLookAt(der, arr, z, 0.0, 0.0, 0.0, 0, 1, 0); break; case 1: printf("Catastrofe\n"); textOFF = 1; hora += 50.0; aux2 = 1; gluLookAt(der, arr, z, 0.0, 0.0, 0.0, 0, 1, 0); muerte(der, arr, z); break; case 2: printf("Iniciar Movimiento \n" ); textOFF = 1; hora += 50.0; gluLookAt(der, arr, z, 0.0, 0.0, 0.0, 0, 1, 0); break; case 3: printf("Detener Movimiento\n"); gluLookAt(der, arr, z, 0.0, 0.0, 0.0, 0, 1, 0); hora = 0.0; break; case 4: printf("Sol\n"); walkFromTO (der, z, 0.0, -7.6); gluLookAt(der, arr, z, 0.0, 0.0, 0.0, 0, 1, 0); break; case 5: printf("Salir\n"); exit(1); break; } printf ( "Speed = %F\n", speed); printf ( "( x, y, z ) = ( %F, %F , %F)\n", der, arr, z); printf ( "Angulo = %F\n", angulo); }
int vidaymuerte(void) { int coordenada[3],a,i; for (i=0; i<celulas_TOT; i++) { if ((*celulas[i]).vida_muerte==APOPTOSIS) { muerte(i); i--; } else if ((*celulas[i]).vida_muerte==DIVISION) { (*celulas[i]).vida_muerte=0; if ( search(coordenada, i) ) continue; a=retornar_indice(coordenada[0], coordenada[1], coordenada[2]); if((celulas[a] = crear_celula(coordenada[0], coordenada[1], coordenada[2])) == NULL) continue; espDifusivo2D[*coordenada][*(coordenada+1)][MAXGEN_SEN] = a; } } return(0); }
bool run(){ if (getInput(&g_key)) { if (g_key == 's') { g_direccion = DERECHA; g_personaje_actual = g_personaje_d; g_posxPersonaje++; } if (g_key == 'a') { g_direccion = IZQUIERDA; g_personaje_actual = g_personaje_i; g_posxPersonaje--; } if (g_key == 'd') { if (g_direccion == IZQUIERDA){ g_direccion_bala = IZQUIERDA; } else if (g_direccion == DERECHA){ g_direccion_bala = DERECHA; } g_balaActiva = true; g_posxBala = g_posxPersonaje; } if (g_key == 32) { g_muerte = false; } if (g_key == 'q') { return 0; } } if (g_balaActiva) { g_incrementoBala += g_frameRate*g_velBala; if (g_direccion_bala == DERECHA) { if (g_incrementoBala >= 1) { g_posxBala += 1; g_incrementoBala = 0; } } else if (g_direccion_bala == IZQUIERDA) { if (g_incrementoBala >= 1) { g_posxBala -= 1; g_incrementoBala = 0; } } if (g_posxBala > ANCHO_MUNDO || g_posxBala < 0) g_balaActiva = false; } if (!g_enemActivo && !g_randomSet) { g_random = rand() % 100; g_randomSet = true; } if (g_randomSet) { if (g_cuentaParaEnemigo == g_random) { g_direccion_enemigo = !g_direccion_enemigo; if (g_direccion_enemigo == DERECHA) g_posxEnem = ANCHO_MUNDO; else g_posxEnem = 0; g_enemActivo = true; } g_cuentaParaEnemigo++; } if (g_enemActivo) { g_incrementoEnem += g_frameRate*g_velEnem; if (g_posxEnem > ANCHO_MUNDO || g_posxEnem < 0) { ocultaEnemigos(); } if (g_direccion_enemigo == DERECHA){ if (g_incrementoEnem >= 1) { g_posxEnem -= 1; g_incrementoEnem = 0; } if (g_posxEnem <= g_posxBala && g_balaActiva) { ocultaEnemigos(); g_posxBala = 0; g_balaActiva = false; } if (g_enemActivo == true && g_posxEnem <= g_posxPersonaje) { ocultaEnemigos(); muerte(); } } else { if (g_incrementoEnem >= 1) { g_posxEnem += 1; g_incrementoEnem = 0; } if (g_posxEnem >= g_posxBala && g_balaActiva) { ocultaEnemigos(); g_posxBala = 0; g_balaActiva = false; } if (g_enemActivo == true && g_posxEnem >= g_posxPersonaje) { ocultaEnemigos(); muerte(); } } } return false; }