Licantropo
02/10/2004, 17:16
Hola, tengo un pequeño problema. Es en el uso de las variables en fenix, que no me queda muy claro.
Tengo un proceso enemigo, que esta dividido en dos procesos: uno de movimiento y otro de disparo. (Podria unificarlos, pero supongo que asi perdere velocidad de ejecucion, porque de esta forma se hace en paralelo y si los unifico no).
El codigo es asi:
Procces enemigo(tipo,x,y)
Private
Int tipoene,vitalidad,velocidad,posicione,xe,ye;
Begin
//...... (codigo que segun el tipo de enemigo le da una velocidad
//y vitalidad disitintas
//mueve al enemigo (varia la posicione, xe, xp) el problema esta
//aki, yo lo que pretendo es cambiar las variables posicione, xe,
//ye, pero tal y como lo he puesto no se consigue ya que las
//toma de entrada pero no de salida. ¿Hay que indicarle de
// alguna forma especial que una variable es de entrada y salida?
enemigomovi(tipoene,vitalidad,velocidad,posicione, xe,ye);
//le paso las coordenadas del enemigo y la posicion, que se
//supone que estan variando en enemigomovi
multidisparoene(tipo,posicione,xe,ye);
ctype=c_scroll;
Loop
Frame;
End
End
Process enemigomovi(tipo,vitalidad,velocidad,posicione,xe, ye)
Private
Int actualizado,cambio;
Begin
ctype=c_scroll;
posicione=1;
actualizado=0;
cambio=0;
x=xe;
y=ye;
Loop
xe=x;
ye=y;
actualizado=0;
graph=tipo+posicione;
//... tada la movida del codigo para modificar x, y, poscione
End
End
El de multdisparoene no lo pongo porque usa mas subprocesos, pero que el problemas es ese que las variables creo que solo las toma como entrada y no como entrada/salida. Eso es todo.
(quiza los subprocesos se pudan declarar dentro del proceso principal y asi usar las variables privadas, puede que sea asi, pero si es asi tampoco se donde debo declarar los subprocesos (supongo que dentro del private))
La solucion de aplicar variables globales no es valida, porque se necesita por cada enemigo unas variables.
A ver si alguien puede ayudarme.Ta luego.
Tengo un proceso enemigo, que esta dividido en dos procesos: uno de movimiento y otro de disparo. (Podria unificarlos, pero supongo que asi perdere velocidad de ejecucion, porque de esta forma se hace en paralelo y si los unifico no).
El codigo es asi:
Procces enemigo(tipo,x,y)
Private
Int tipoene,vitalidad,velocidad,posicione,xe,ye;
Begin
//...... (codigo que segun el tipo de enemigo le da una velocidad
//y vitalidad disitintas
//mueve al enemigo (varia la posicione, xe, xp) el problema esta
//aki, yo lo que pretendo es cambiar las variables posicione, xe,
//ye, pero tal y como lo he puesto no se consigue ya que las
//toma de entrada pero no de salida. ¿Hay que indicarle de
// alguna forma especial que una variable es de entrada y salida?
enemigomovi(tipoene,vitalidad,velocidad,posicione, xe,ye);
//le paso las coordenadas del enemigo y la posicion, que se
//supone que estan variando en enemigomovi
multidisparoene(tipo,posicione,xe,ye);
ctype=c_scroll;
Loop
Frame;
End
End
Process enemigomovi(tipo,vitalidad,velocidad,posicione,xe, ye)
Private
Int actualizado,cambio;
Begin
ctype=c_scroll;
posicione=1;
actualizado=0;
cambio=0;
x=xe;
y=ye;
Loop
xe=x;
ye=y;
actualizado=0;
graph=tipo+posicione;
//... tada la movida del codigo para modificar x, y, poscione
End
End
El de multdisparoene no lo pongo porque usa mas subprocesos, pero que el problemas es ese que las variables creo que solo las toma como entrada y no como entrada/salida. Eso es todo.
(quiza los subprocesos se pudan declarar dentro del proceso principal y asi usar las variables privadas, puede que sea asi, pero si es asi tampoco se donde debo declarar los subprocesos (supongo que dentro del private))
La solucion de aplicar variables globales no es valida, porque se necesita por cada enemigo unas variables.
A ver si alguien puede ayudarme.Ta luego.