Autor Tema: Variables de write_var que no se actualizan.  (Leído 3019 veces)

Danielo515

  • Sr. Member
  • ****
  • Mensajes: 480
  • Karma: 4
    • Blog del Blogbo
Variables de write_var que no se actualizan.
« en: Septiembre 11, 2008, 01:31:31 am »
Tengo esta sentencia
[code language="bennu"]if(y>=miniradar_altura_banda[jugador])
         miniradar_vel_detect[jugador]=velocidad*10;
         end[/code]

Y en otro proceso muy anterior tengo esta otra sentecia...

[code language="bennu"] from i=1 to jugadores
       write(miniradar_fuente_ceros,pos_velocimetro[0]+29,pos_velocimetro[1],5,"000");
       write_var(miniradar_fuente_vel,pos_velocimetro[0]+29,pos_velocimetro[1],5,miniradar_vel_detect);             
     end[/code]

Se supone que las variables escritas tendrían que actualizarse cada vez que el if del primer código lo cambiase, pero solo se actualizan la primera vez, luego se quedan así y no se el porque. ¿Puede ser porque el proceso que hace el write_var muere? Creo que no, ya que lo he probado en otro proceso que no muere y el resultado es el mismo.

A continuación posteo el código de los dos procesos

[code language="bennu"]process crear_mapa()
private
   int tile[1];
   int pos[4][1]=0,0,200,150,
                 600,150,
                 200,450,
                 600,450;
   
   int pos_velocimetro[4][1]=0,0,90,35,
                          490,35,
                          90,335,
                          490,335;                

begin
   tile[0]=map_clone(fpg_minijuego,2);
   tile[1]=map_clone(fpg_minijuego,3);
   graph=new_map(400,300,16);
   from i=0 to 5
      map_put(0,0,tile[rand(0,1)],200,50+(i*100));
      map_put(0,0,tile[rand(0,1)],600,50+(i*100));
      
   end 
   unload_map(0,tile[0]);
    unload_map(0,tile[1]);
   
//El frame de cada jugador-----------------------------------------   
   
    //aqui esta creando el frame
    tile[0]=map_clone(fpg_minijuego,6);
    tile[1]=map_clone(fpg_minijuego,9);
   
    map_put(0,graph,tile[0],50,150);
    map_put(0,graph,tile[1],375,150);
   
    unload_map(0,tile[0]);
    unload_map(0,tile[1]);
       
    tile[0]=map_clone(fpg_minijuego,7);
    tile[1]=map_clone(fpg_minijuego,8);
   
    from i=50 to 350;
          map_put(0,graph,tile[0],i,0);
          map_put(0,graph,tile[1],i,297);
     end
    unload_map(0,tile[0]);
    unload_map(0,tile[1]);
       
     //aqui lo coloca
     from i=1 to jugadores
       map_put(0,0,graph,pos[0],pos[1]);       
     end               
     
        graph=map_clone(fpg_minijuego,10);
     from i=1 to jugadores
       map_put(0,0,graph,pos_velocimetro[0],pos_velocimetro[1]);       
     end     
     
     from i=1 to jugadores
       write(miniradar_fuente_ceros,pos_velocimetro[0]+29,pos_velocimetro[1],5,"000");
       write_var(miniradar_fuente_vel,pos_velocimetro[0]+29,pos_velocimetro[1],5,miniradar_vel_detect);             
     end
//Regiones--------------------------------------   

define_region(1,0,3,400,294);
define_region(2,400,3,400,294);
define_region(3,0,303,400,294);
define_region(4,400,303,400,294);
//---------------------------------------------------   
   
       
     
       
end

Process vehiculo_miniradar(tipo,float velocidad,jugador);
Private
   float avance;
   fotos=1;   //valor máximo 1
   vel_G;
Begin
   file=0;
   region=jugador;
   angle=-90000;
   graph=map_clone(fpg_minijuego,1);
   
   velocidad=velocidad/100;
   vel_G=write_in_map(0,velocidad,4);
   map_put(0,graph,vel_G,25,15);
   unload_map(0,vel_G);
   switch(jugador)
      case 1: x=160; end
      case 2: x=480; end
      case 3: x=160; end
      case 4: x=640; end
   end
         
      
      repeat
         avance+=velocidad;
         y=avance;
      
         if(miniradar_flashing)
            velocimetro_miniradar(y,velocidad,jugador);
         end     
         
         if(y>=miniradar_altura_banda[jugador])
         miniradar_vel_detect[jugador]=velocidad*10;
         end
         
         frame;
      until(y<0);
      
      

   //explosión de las naves o algo
End   [/code]

¿cual puede ser el problema?

HaCkZJuaNN

  • Full Member
  • ***
  • Mensajes: 179
  • Karma: 5
Re: Variables de write_var que no se actualizan.
« Respuesta #1 en: Septiembre 11, 2008, 01:42:52 am »
has comprobado que la linea miniradar_vel_detect[jugador] = velocidad*10 se ejecuta?

prueba a poner un say(jugador) justo debajo de esa línea y dinos que te da...

Danielo515

  • Sr. Member
  • ****
  • Mensajes: 480
  • Karma: 4
    • Blog del Blogbo
Re: Variables de write_var que no se actualizan.
« Respuesta #2 en: Septiembre 11, 2008, 01:55:58 am »
Estos son algunos de los valores
[code language="bennu"]35
43
107
105
173
22
25
67
54
120
198
115
79
172
96
198
154
187
5
35
140
92
91
105
23
100
173
177
152
25
54
144
183
191
54
179[/code]

Muy raros por cierto, ya que es una variable que se la van pasando de un proceso a otro sin alterarla, y el proceso que se la pasa a vehiculo las tiene bien, y dentro de vehículo lo mismo, es una variable necesaria para el funcionamiento.

Danielo515

  • Sr. Member
  • ****
  • Mensajes: 480
  • Karma: 4
    • Blog del Blogbo
Re: Variables de write_var que no se actualizan.
« Respuesta #3 en: Septiembre 11, 2008, 01:57:57 am »
He puesto que cada coche escriba su variable jugador y está bien, todos están entre 1 y 4. Esto es muy raro.

Como puedes ver, la variable jugador determina las coordenadas del coche, si valiera por encima de 4 el coche no aparecería, y también se aprecia que en ningún momento se le asigna ningún valor. Esto es algo un poquito raro.
« última modificación: Septiembre 11, 2008, 02:00:10 am por Danielo515 »

fr0d0b0ls0n

  • Newbie
  • *
  • Mensajes: 44
  • Karma: 0
Re: Variables de write_var que no se actualizan.
« Respuesta #4 en: Septiembre 11, 2008, 08:50:48 am »
Pues sí es raro, sí. Sin el código completo parece complicado adivinar que es.

¿De qué tipo es la variable?
¿Has comprobado que varía correctamente?

Prueba a pasar una de ellas a otra variable global y representar esa, por si fuera un problema del vector, aunque lo dudo.
Follow the Moeko Principle

FAETON - En Progreso
15 Criaturas de ~28 |  18 Hechizos de ~41
25 Buffs de ~50      |  19 Enfrentamientos de ~80

Danielo515

  • Sr. Member
  • ****
  • Mensajes: 480
  • Karma: 4
    • Blog del Blogbo
Re: Variables de write_var que no se actualizan.
« Respuesta #5 en: Septiembre 11, 2008, 10:01:02 am »
He probado a que todos los coches le pasasen su variable jugador a una variable global que imprimo por pantalla y solo se actualiza con el nº del primer coche que pasa, luego se queda estática, igual que la otra. Tambien, a esta misma variable global probé a pasarle la variable velocidad y el resultado fué el mismo. Cosararamala. ¿posteo el código completo?

Danielo515

  • Sr. Member
  • ****
  • Mensajes: 480
  • Karma: 4
    • Blog del Blogbo
Re: Variables de write_var que no se actualizan.
« Respuesta #6 en: Septiembre 11, 2008, 10:07:58 am »
DEJADLO! PARAD! NO SIGAIS!! He encontrado el error y nadie debería seguir buscandolo. El error era que el proceso coche no moría nunca, aunque no apareciera en pantalla, y como supongo que tenía prioridad pues estaba contínuamente asignando su valor a la variable. No leais ni una línea mas de mi estúpido código.

venga, repitamos todos juntos: programar desde las 10 de la mañana hasta las cuatro de la mañana es maaalo, programar hasta las cuatro d ela mañana es maaalo.
PERDON.
« última modificación: Septiembre 11, 2008, 10:13:55 am por Danielo515 »

Danielo515

  • Sr. Member
  • ****
  • Mensajes: 480
  • Karma: 4
    • Blog del Blogbo
Re: Variables de write_var que no se actualizan.
« Respuesta #7 en: Septiembre 11, 2008, 10:45:53 am »
Por cierto ¿alguien sabe si cosas que están en distintas regiones colisionan?

kim-elet-o

  • Sr. Member
  • ****
  • Mensajes: 397
  • Karma: 8
Re: Variables de write_var que no se actualizan.
« Respuesta #8 en: Septiembre 11, 2008, 01:01:23 pm »
Danielo515 te doy un consejo, no te enfades, una forma de aprender como funcionan las cosas, es montarte pequeños programas de pruebas, en los cuales observas como reaccionan las diferentes funciones de fenix/bennu, de modo aisalado y sin la interferencia del restante codigo que acompaña el proyecto que estas realizando, de esta forma experimentas y aprendes de forma mas intuitiva. Pasar a programacion multihilo simulada cuando se viene de la programacion clasica monohilo, al principio cuesta, ademas lo digo por que los ultimos mensajes acabas encontrando tu solo los fallos, bueno espero que no te enfades es un consejo que te doy de buena fe.
|/
|\im-elet-o el yayo programador.

Danielo515

  • Sr. Member
  • ****
  • Mensajes: 480
  • Karma: 4
    • Blog del Blogbo
Re: Variables de write_var que no se actualizan.
« Respuesta #9 en: Septiembre 11, 2008, 07:07:05 pm »
Amigo kel ¿puedo llamarte kel? (jo jo jo, que de pelicula queda esto no?) Para nada me enfado, los consejos son bienvenidos, de hecho una de mis aficiones es hacer pequeños programas estúpidos que hagan algunas cosas inútiles para ver que pasa y como hacerlo, pero seguro que alguna vez te ha pasado que te pones con un proyecto y quieres sacarlo adelante, y te topas con un bug y te enciscas con el.... y hasta que no lo resuelves no duermes tranquilo. Muchas veces he posteado errores a las cuatro de la mañana y los he descubierto a la mañána siguiente, fresquito, pero a las 4 de la mañana estaba desesperado y me tiraba de los pelos y por eso los postee.

Aunque te doy toda la razón.

HaCkZJuaNN

  • Full Member
  • ***
  • Mensajes: 179
  • Karma: 5
Re: Variables de write_var que no se actualizan.
« Respuesta #10 en: Septiembre 12, 2008, 01:22:36 am »
si le llamas kel le vas a confundir con el otro usuario que se llama kel :P

a mi también me pasaba eso que dices cuando empecé a programar con fénix, pero si que es cierto que a veces lo mejor es pasear un rato, ver la tele, o incluso dormir y retomarlo un rato más tarde y de repente dices: "coño, qué tontería".

laghengar

  • Hero Member
  • *****
  • Mensajes: 642
  • Karma: 8
Re: Variables de write_var que no se actualizan.
« Respuesta #11 en: Septiembre 12, 2008, 11:27:28 am »
Amén  8)
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

Danielo515

  • Sr. Member
  • ****
  • Mensajes: 480
  • Karma: 4
    • Blog del Blogbo
Re: Variables de write_var que no se actualizan.
« Respuesta #12 en: Septiembre 12, 2008, 12:57:09 pm »
Desgraciadamenta algunas veces la única forma de poder seguir programando es, dejar de programar.  ;D

kim-elet-o

  • Sr. Member
  • ****
  • Mensajes: 397
  • Karma: 8
Re: Variables de write_var que no se actualizan.
« Respuesta #13 en: Septiembre 12, 2008, 02:01:47 pm »
Huy como se entere Kel que me llamas igual que el... ;D ;D ;D, jejejeje, bromas aparte, con solo me llames kim ya es suficiente.

|/
|\im-elet-o el yayo programador.