Public, primer intento...

Started by Futu-block, March 04, 2011, 10:39:06 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Rein (K´)ah Al-Ghul

Futu (puedo llamarte futu? )
seria:

<IDDelProceso>.alpha = <valor>;

ahora la IDdel proceso puede estar guardada en una variable global u obtenida con alguna funcion como Get_ID
como por ejemplo, cuando haces
IDproceso = ProcesoRandom();

siendo IDproceso declarado como variable global
entonces haces desde
IDproceso.alpha = 100;

Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.

en vez de darme Karma positivo, denme (K´)arma negativ

Futu-block

Quote from: Drumpi on August 15, 2011, 06:21:15 PM
Si ya está declarada como local, no deberías poder crear otra variable con el mismo nombre (debería darte un error o como mínimo un warning).
Y aun así, sería redundante, o sea, ineficiente.

No, no tiene el mismo nombre, tiene otro distinto


Quote from: Rein (K´)ah Al-Ghul on August 15, 2011, 06:39:17 PM
Futu (puedo llamarte futu? )
por supuesto :D

Quote from: Rein (K´)ah Al-Ghul on August 15, 2011, 06:39:17 PM
seria:

<IDDelProceso>.alpha = <valor>;

ahora la IDdel proceso puede estar guardada en una variable global u obtenida con alguna funcion como Get_ID
como por ejemplo, cuando haces
IDproceso = ProcesoRandom();

siendo IDproceso declarado como variable global
entonces haces desde
IDproceso.alpha = 100;

vale, pero yo soy mu torpe, los simbolos <> ¿van o no van?

resumiendo: Lo que hay que hacer es guardar el identificador en una variable global donde se le acceda a traves del punto, ej: Var_global.var_a_modificar

Rein (K´)ah Al-Ghul

los <> no van, es para indicar generico, debajo te puse un ejemplo

Quote from: Rein (K´)ah Al-Ghul on August 15, 2011, 06:39:17 PM
ahora la IDdel proceso puede estar guardada en una variable global u obtenida con alguna funcion como Get_ID
como por ejemplo, cuando haces
IDproceso = ProcesoRandom();

siendo IDproceso declarado como variable global
entonces haces desde
IDproceso.alpha = 100;

Quote from: Futublock on August 15, 2011, 07:24:57 PM
resumiendo: Lo que hay que hacer es guardar el identificador en una variable global donde se le acceda a traves del punto, ej: Var_global.var_a_modificar

exacto, pero solo puedes acceder a una variable local, es decir para hacer eso var_a_modificar tiene que estar declarada como LOCAL....

Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.

en vez de darme Karma positivo, denme (K´)arma negativ

Windgate

Ay Futu, Futu... ¿Seguiste mi tutorial o el manual de osk? Los <> sólo entran en condiciones aritméticas...
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Futu-block

es que soy mu torpe, como ya supongo que sabes, y que ahora en veranito estoy medio muerto (por no decir tonto del tó) :D

Futu-block

Refloto este hilo porque no me aclaro...

Tengo varios procesos iguales al que llamaré nave(x,y,color,forma,direccion)  cada vez que creo uno nuevo le nombro como variable global nave0, nave1, etc en vez de usar un array, que me da igual pero como son pocos  ;)


a la hora de consultarle la variable publica color y forma me hago un lio, porque se supone que el proceso ya está identificado como nave0, nave1, etc... y no hace falta que le haga un get_id ¿no? digo yo


despues, la consulta if (nave0.colore == 4) me dá un error que no me reconoce la variable publica colore (en este caso) que es la publica no incluida en el proceso cuando es creado.


el proceso nave está importado arriba del proceso que lo crea, por si hay prioridad en lo de public, y la variable publica las llamo de diferente nombre porque si consulto con su nombre, seguro que da error...


¿como consulto entonces las variables publicas del mismo proceso pero con distinto nombre de variable?

Rein (K´)ah Al-Ghul

seguro que "colore" es el mismo nombre que en el proceso nave?

arriba pusiste "color", y luego colore...

Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.

en vez de darme Karma positivo, denme (K´)arma negativ

Futu-block

claro porque es la variable publica, si consulto con color tampoco funciona...

aunque a partir de ahora a la variable publica colore le voy a llamar color_p

SplinterGU

nave0 esta declarada como nave?

o sea,

global
nave nave0;
end

?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Futu-block

#69
si, pero como int dentro de global
bueno, no...
probando...

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Futu-block

vale, ahora pasa otra cosa:

nombro en global como has dicho:

nave nave0;
nave nave1:
nave nave2;
nave nave3;

ya no tengo mas naves, a la hora de consultar la variable publica de la primera nave hago:

if (nave0.color_p == 1)...

y ahora me dá error en global (nave nave0; )

ahora bien, cada vez que creo un proceso nave hago:

nave0 = nave(x,y,color,forma,direccion);

no se porque pero me suena que le tengo que hacer un get_id por algun lado...

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Futu-block

#73
codigo de la colision, que ahí es donde la estoy cagando seguro:





      if (collision (type nave0))

         switch (nave0.color_p)
            case 3: x-= nave0.color_p; end
            case 4: x+=nave0.color_p; end
         end
      end





por lo demas todo correcto, fué añadirle la colision y cagarla pero ahora que he cambiado el nave0 por el nave no me reconoce que nave es











      if (collision (type nave))

         switch (nave0.color_p)
            case 3: x-= nave0.color_p; end
            case 4: x+=nave0.color_p; end
         end
      end

      if (collision (type nave))

         switch (nave1.color_p)
            case 3: x-= nave1.color_p; end
            case 4: x+=nave1.color_p; end
         end
      end
etc...









algo tengo que estar haciendo mal con esta colision, no se si asignarle una variable a cada colision (tampoco se hacer esto) y una vez que se confirme que sucede dicha colision ''eswichearle'' la variable publica para definir la direccion en este caso (la x)






ahora lo que me pasa es que al colisionar el personaje con la nave (plataforma que se desplaza) se desplaza en sentido de la primera plataforma, una cosa que parece imposible ya que cada variable publica tiene su proceso independiente: nave0 y nave1

SplinterGU

nave0 no es type

si quieres colisionar con nave0, solo pon collision(nave0)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2