PDA

Ver la versión completa : Ayuda con Fenix



bitugarcia
11/05/2006, 01:35
Pues a ver os cuento Gperos, me e puesto a estudiar un poqillo el tema del fenix, me e bajado un estupendo tutorial de esta pagina, y mi problema es el siguiente:(ya me e puesto a programar).
estoy haciendo un jueguecillo de rol, y en el proceso de personaje, cuando el personaje se desplaza, para la izq der o arriba o abajo las imagenes png del personaje moviendose(que son tres) van muy muy rapidas, no no da el pego de estar caminado(mas bien parece un correcaminos lento , jejeje).
Y bueno pues era eso, saber como hacer para que el paso de una imagen a otra sea muxo mas lento que el actual, os paso el codigo del proceso personaje para ver si me podeis decir que cambios podria incluir.
Ojala me podais ayudar, espero que este mensaje valla aqui...
Muchas gracias de antemano:

Process MyCharacter (x,y)
BEGIN
ctype=c_scroll;
scroll[0].camera=id;
graph=1;
angle=0;
Loop
if (key(_right) and not key(_up) and not
key(_down))
x=x+2;
if (graph<=10 or graph>=12) graph=10; end;
graph=graph+1;
flags=0;
end
if (key(_left) and not key(_up) and not key(_down))

x=x-2;
if (graph<=10 or graph>=12) graph=10; end;
graph=graph+1;
flags=1;
end
if (key(_up) and not key(_left) and not
key(_right))
y=y-2;
if (graph<=4 or graph>=6) graph=4; end;
graph=graph+1;
end
if (key(_down) and not key(_left) and not
key(_right))
y=y+2;
if (graph>=3); graph=1; end
graph=graph+1;
end
frame;
End
End

Puck2099
11/05/2006, 02:09
Te lo muevo al subforo de Fenix.

Seguro que algún guru del Fenix de nuestro foro te echa una mano :)

BUHOnero
11/05/2006, 02:26
Pues a ver os cuento Gperos, me e puesto a estudiar un poqillo el tema del fenix, me e bajado un estupendo tutorial de esta pagina, y mi problema es el siguiente:(ya me e puesto a programar).
estoy haciendo un jueguecillo de rol, y en el proceso de personaje, cuando el personaje se desplaza, para la izq der o arriba o abajo las imagenes png del personaje moviendose(que son tres) van muy muy rapidas, no no da el pego de estar caminado(mas bien parece un correcaminos lento , jejeje).
Y bueno pues era eso, saber como hacer para que el paso de una imagen a otra sea muxo mas lento que el actual, os paso el codigo del proceso personaje para ver si me podeis decir que cambios podria incluir.
Ojala me podais ayudar, espero que este mensaje valla aqui...
Muchas gracias de antemano:

Process MyCharacter (x,y)
BEGIN
ctype=c_scroll;
scroll[0].camera=id;
graph=1;
angle=0;
Loop
if (key(_right) and not key(_up) and not
key(_down))
x=x+2;
if (graph<=10 or graph>=12) graph=10; end;
graph=graph+1;
flags=0;
end
if (key(_left) and not key(_up) and not key(_down))

x=x-2;
if (graph<=10 or graph>=12) graph=10; end;
graph=graph+1;
flags=1;
end
if (key(_up) and not key(_left) and not
key(_right))
y=y-2;
if (graph<=4 or graph>=6) graph=4; end;
graph=graph+1;
end
if (key(_down) and not key(_left) and not
key(_right))
y=y+2;
if (graph>=3); graph=1; end
graph=graph+1;
end
frame;
End
End
Una posibilidad sería que solo cambiaras el gráfico no en cada incremento de x, sino en cada y incrementos de x, o sea, podrías hacer:

if (key(_right) and not key(_up) and not
key(_down))
x=x+2;
if (graph<=10 or graph>=12) graph=10; end;
if(x mod 3)
graph=graph+1;
end
flags=0;
end

No recuerdo bien si el código es este, pero la idea es que solo si x es múltiplo de 3 cambiarás la imagen, así cambias no en cada incremento de x, sino una vez cada tres incrementos de x.

Espero que se entienda...

Estopero
11/05/2006, 03:14
Una posibilidad sería que solo cambiaras el gráfico no en cada incremento de x, sino en cada y incrementos de x, o sea, podrías hacer:

if (key(_right) and not key(_up) and not
key(_down))
x=x+2;
if (graph<=10 or graph>=12) graph=10; end;
if(x mod 3)
graph=graph+1;
end
flags=0;
end

No recuerdo bien si el código es este, pero la idea es que solo si x es múltiplo de 3 cambiarás la imagen, así cambias no en cada incremento de x, sino una vez cada tres incrementos de x.

Espero que se entienda...


Si se entiende, jeje, yo he usado un método parecido con mi BugaEstoFactorX xD, en tu método solo esta el problema de que como x en este caso se va incrementenado de dos en dos (x=x+2) obtendrá un efecto un poco extraño ya que la funcion "mod" no será uniforme.

En mi caso yo utilizo una variable auxiliar _contador que se incrementa en 1 cada frame del personaje, y luego utilizo tu método pero respecto a _contador, mas o menos esto:

//Se inicializa la variable contador
Private contador;

//Inicia el proceso
begin

//Aumentamos la variable contador en cada "vuelta" frame o como lo quieras llamar :)
contador=contador+1;

//Al pulsar izquierda o derecha:
if (key(_right) and not key(_up) and not
key(_down))
x=x+2;
if (graph<=10 or graph>=12) graph=10; end;
//Esto es como lo que dijo buhonero pero ahora va respecto a una variable que sube de uno en uno, en vez de 3 puedes poner cualquier valor, a un valor mas grande la animacion será mas lenta
If contador MOD 3 == 0 :
graph = graph+1;
//cuando aumenta el grafico ponemos el cotnador a 0 para que despues de un tiempo no se salga del rango de enteros
contador=0;
End
flags=0;
end

Ten en cuenta que debes hacer los cambios para moverte hacia los dos lados =).

Weno alomejor te lias amigo, pero espero q te sirva de ayuda xD. Si no entiendes algo sigue pregutnando xD

BUHOnero
11/05/2006, 05:25
Es verdad, se me ha escapado el detalle de que era cada dos, mmmm entonces prueba con multiple de 4 o de 6 xD

Coelophysis
11/05/2006, 08:22
No sé a bitugarcia, pero a mí la solución de Estopero me ha ido de muerte... hasta ahora me veía obligado a dibujar hasta 18 frames de animación por sprite para que no parecieran demasiado acelerados; ahora me bastará con la mitad o menos (lo que implica que tendré los gráficos hechos en la mitad de tiempo :brindis:).

Con lo fácil que era... en fin, uno que es brutico...

chipan
11/05/2006, 16:32
No sé a bitugarcia, pero a mí la solución de Estopero me ha ido de muerte... hasta ahora me veía obligado a dibujar hasta 18 frames de animación por sprite para que no parecieran demasiado acelerados; ahora me bastará con la mitad o menos (lo que implica que tendré los gráficos hechos en la mitad de tiempo :brindis:).

Con lo fácil que era... en fin, uno que es brutico...
acabo de acordarme que te tengo que pasar lo del generador de mapas por tiles XDDDDD
Por cierto, creo que el oprador "%" hace lo mismo que "MOD"

Coelophysis
11/05/2006, 17:37
acabo de acordarme que te tengo que pasar lo del generador de mapas por tiles XDDDDD
Por cierto, creo que el oprador "%" hace lo mismo que "MOD"

De momento he creado tres niveles con el gráfico de fondo a lo bestia para tener una base donde moverme e ir desarrollando todo lo demás (y he aprendido hace nada que los fpgs se pueden comprimir, con lo que cada nivel ocupa cuatro o cinco veces menos [Ahhh] ). Gracias a eso he podido seguir avanzando y lo de la creación dinámica de tiles ha dejado de ser prioritario; aunque sigue estando en la agenda. Será algo así como la guinda cuando me ponga a optimizar; así que no te preocupes, que si no te acuerdas, ya me ocuparé yo de darte la vara cuando me ponga a ello :D .

the_goulin
11/05/2006, 17:47
Con lo fácil que era... en fin, uno que es brutico...


pero brutico brutico xDDD que bestia, podrias haber hecho graficos para 2 o tres proyectos mas ;)

Puck2099
11/05/2006, 17:58
De momento he creado tres niveles con el gráfico de fondo a lo bestia para tener una base donde moverme e ir desarrollando todo lo demás (y he aprendido hace nada que los fpgs se pueden comprimir, con lo que cada nivel ocupa cuatro o cinco veces menos [Ahhh] ). Gracias a eso he podido seguir avanzando y lo de la creación dinámica de tiles ha dejado de ser prioritario; aunque sigue estando en la agenda. Será algo así como la guinda cuando me ponga a optimizar; así que no te preocupes, que si no te acuerdas, ya me ocuparé yo de darte la vara cuando me ponga a ello :D .

Uhm, a lo mejor estoy equivocado, pero el que un fpg se pueda comprimir solo afecta a su tamaño en disco, para usarlo se tiene que descomprimir en memoria y seguirá ocupando lo mismo...

Saludos

chipan
11/05/2006, 18:11
Uhm, a lo mejor estoy equivocado, pero el que un fpg se pueda comprimir solo afecta a su tamaño en disco, para usarlo se tiene que descomprimir en memoria y seguirá ocupando lo mismo...

Saludos
No te equivocas, un fpg comprimido ocupa exactamente lo mismo en memoria que uno sin comprimir.

Coelophysis
11/05/2006, 19:11
Uhm, a lo mejor estoy equivocado, pero el que un fpg se pueda comprimir solo afecta a su tamaño en disco, para usarlo se tiene que descomprimir en memoria y seguirá ocupando lo mismo...

Saludos

Tienes razón, de hecho es bastante evidente; pero lo que a mí me preocupaba es que el juego me iba a ocupar más de 120 megas en disco (o tarjeta de memoria), cuando ahora no creo que pase de los 20.

Los fpgs se cargan y descargan de la memoria a medida que se utilizan, y mientras la consola pueda con ellos me da igual lo que ocupen descomprimidos... de hecho, si quiero tilear los fondos solo es para que los gráficos aún ocupen menos en disco.

bitugarcia
13/05/2006, 03:01
Joe muxas gracias a todos por responder no esperaba tanta ayuda aora el efecto de andar es muxo mas realista[wei2]


Gracias

Estopero
13/05/2006, 04:54
Joe muxas gracias a todos por responder no esperaba tanta ayuda aora el efecto de andar es muxo mas realista[wei2]


Gracias

esque aqui si se piden las cosas de buenas maneras y tienes la suerte de no toparte con ningun pro-noob (la variante de noob pero en pro [wei5] ) somos mu majetes jejejeje ;)