Animación con xgraph¿?

Started by Fido, January 15, 2010, 04:07:08 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Fido

Antes de nada, saludos a la comunidad. Aquí uno más que al fin ha decidido dar el salto de Fenix a Bennu y retomar algún viejo proyecto. (Esto es un vicio al que uno siempre vuelve)

Y ahora, mi pregunta:
Aquellos que como yo empezasteis con DIV2 (o antes) recordaréis sin duda el viejo Tokenkai, en cuyo código utilizaba un array tal que así:

anim[]=4,1,5,9,13
4,2,6,10,14
4,3,7,11,15
     .......
(Obviamente mucho más larga)

El cual luego lo asignaba a la variable xgraph:

xgraph= anim[animacion]   

Siendo "animacion" el número del gráfico correspondiente dentro de toda la animación del prota. De este modo conseguía muy comodamente animar el personaje en todos sus ángulos.
Sin embargo, tras revisar la documentación que he podido encontrar al respecto y probando ese método ahora en Bennu, no me permite asignar datos al array de esa manera (";" expected) ¿Hay alguna manera de hacer esto, o algo similar? (Aparte de los métodos explicados en el manual de osk; me refiero al array).

Gracias de antemano, y a posteriori por el buen trabajo que estáis haciendo con Bennu. Espero poder mostrar pronto algo de mi proyecto y dar mi pequeño aporte.

Prg

si te refieres a agregar datos a un array (eso entendí), hazlo desde el momento de declararlo:

[code language="bennu"]
process mi_mono(bla,blax,...);
private
miarray[]=1,2,3,4,5,6,7,...,muchos;
...
begin
...
..
end
[/code]

si lo haces al declarar le puedes asignar los datos separados por comas, si no lo haces al declarar, los elementos del array los tienes que agregar uno por uno al estilo ¡No quiero hacerlo manualmente!, el cuál es:

[code language="bennu"]
process ar();
private
array[100];
Begin
array[0]=1;
array[1]=2;
array[2]=3;
...
array[n]=n;
end[/code]


si te refieres al uso de xgraph y asignarle el grafico del array, nunca he usado esa variable local (me refiero a xgraph). lo hice en el div2, pero en bennu nop.

supongo que si se complica puedes incluso generar el mismo comportamiento con algo como:
val=((sizeof(anim)/sizeof(*anim))/360000)*angle;
graph=anim[val];

saludos y bienvenido :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Fido

Gracias por la respuesta y por la bienvenida :)

Tengo claro como agregar los datos al array, a lo que me refiero es a que Bennu no me deja declararlos de la manera que expuse anteriormente, es decir, mediante varias lineas cada una definiendo los gráficos para una dirección del xgraph. A ver si alguien me saca de dudas, aunque sospecho que si no me deja declararlo así, posiblemente no haya manera y tenga que hacerlo como tú dices, o usando un Switch y diferentes cases para cada rango de ángulos.

Gracias por tu interés de todos modos. Un saludo ;)

Hokutoy

Me meto donde no me llaman pero si tu problema al intentar complilarlo de la manera que dices es el error de (";" expected) quizà sea porque te has dejado unos ; al final de la linea?
Prueba a hacer un mini programa de ejemplo funcional y así entre todos miramos que puede ser.

Saludos!

Windgate

Yo use xgraph para animar una vez y la verdad, creo que no merece la pena... ¿Has mirado los 2 temas de animación de mi tutorial?

Ahora vienen incluso con un diagrama de cambios de estado de animación, para poder controlar las condiciones que hacer que el personaje pase de estar quieto a estar andando, a estar disparando o a hacer la animación de recibir daño :P

En cualquier caso, si ponéis código sobre xgraph que sea algo breve que compile y funcione, o subir algún ejemplo funcional sencillo si disponéis de él :D
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

SplinterGU

no sera que te falta , al final de la linea?

esto compila perfectamente


global
anim[]=4,1,5,9,13,
4,2,6,10,14,
4,3,7,11,15;

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

Drumpi

+1 a lo que dice Splinter.
A lo que añado ¿no había que especificar como primer dato el número de posiciones que tiene el array para usarlo con xgraph?
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Fido

Zas!
Pues sí era justo lo que dices, Splinter. Si es que no duermo lo suficiente ultimamente, perdón por la pregunta tonta entonces.

De momento, y hasta donde yo sé, compila y funciona perfectamente sin declarar antes el tamaño del array.

Gracias a todos.

Hokutoy

A mí nadie me lee...  ;D ;D ;D

Drumpi

Jejeje, te ignoran como a mi la mitad de las veces ;D
Aunque siendo justos, la respuesta de Splinter era más exacta que la tuya: le faltaba las comas al final de cada linea y el punto y coma al final de la última... aunque en realidad no la ha escrito ^^U
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

el ; al final de la linea esta implicito, porque el dijo que esa era parte del vector que cargo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Hokutoy

Siendo muy muy quisquillso  ;D el realmente dice que le da el error:
QuoteSin embargo, tras revisar la documentación que he podido encontrar al respecto y probando ese método ahora en Bennu, no me permite asignar datos al array de esa manera (";" expected)

Es mas, aunque se olvidara de las comas a final de la línea, esto no sería motivo para que no compilara ya que en vez de:

anim[]=4,1,5,9,13,4,2,6,10,14,4,3,7,11,15;

Bennu hubiera compilado igual con los siguientes parametros:
anim[]=4,1,5,9,134,2,6,10,144,3,7,11,15;

No?

PD: I win?  ;D ;D ;D

SplinterGU

claro, pero el error lo daba la falta de coma, como no encuentra coma en esa linea el parser piensa que falta el punto y coma para terminarla, aun el no se leyo la siguiente linea, o si, pero supone que falta el punto y coma.

prueba hacer lo que te digo, poniendo la ultima con ; pero no pongas , entre lineas...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Hokutoy

Probado! Y tienes razón... no sé porque pensé que Bennu no haría caso de los espacios en blanco y "pegaría" los números.
You win!  ;D

Si es que no se puede competir contra tí man  :D

Fido

Jajaja Lo siento Hokutoy. Claro que te leí, pero ultimamente ando liado con el curro y no tengo mucho tiempo para conectarme, por eso fuí directamente al grano, solo para haceros saber que ya estaba solucionado.
El problema era exactamente lo que Splinter explicó (y solucionó)

Gracias a todo por el interés. Si el curro me deja, no debería tardar mucho en subir algo a la sección de proyectos =)