Migración de juegos Fenix a Bennu - Apuntes de diferencias y resoluciones.

Started by FreeYourMind, September 30, 2009, 05:20:12 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

FreeYourMind

Quote from: splinter_work on October 26, 2009, 06:57:53 PM
ya tengo la correccion hecha y probada... luego subo el fix... donde estoy ahora no tengo accceso...

saludos y gracias.

Grácias, no me habia fijado, me vas ahorrar horas de curro que tendria para ajustar los gráficos :)

SplinterGU

no entiendo que me decis... era un bug... ya esta corregido, no pinta mas alla del grafico, no es logico eso, se pinta sobre el grafico lo que aplique...

ahora mismo no puedo compilarlos, y armar los paquetes... lo compile en linux y probe ahi... suguiero si tenes posibilidad de usar linux, que lo uses, bajes los fuentes del svn y los compiles... asi podras seguir trabajando...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Ok, pues yo esto no lo consideraba un bug en sí. Me parecía lógico que con x o y negativo no hiciera nada la función :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Drumpi

DCelso, depende de dónde estuviera el centro del mapa. Sería lógico si el centro estuviera en la esquina inferior derecha, pero si está en el centro y se dibuja en (-1,-1) siempre habrá al menos un tile que se pueda pintar en el mapa destino.
Es curioso, nunca detecté fallo en este tipo de cosas, y eso que hice un scroll tileado que dibujaba en gráfico, y los tiles tenían todas las posiciones habidas y por haber (valores negativos incluidos), pero claro, en Fénix yo usaba map_xputnp.
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

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

FreeYourMind

Muchas grácias por el Update del rc112.

Como se puede observar parece que ya esta perfecta la compatibilidad con DIV, aparte de que pensaba que el scroll tambien tenia un problema de margen, y al final provenia de lo mismo. Así que en principio, ya se pintan todo a la perfección.


SplinterGU

me alegra mucho... gracias por probar y REPORTAR! (NO TODOS LO HACEN!...)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Vengo con otro problema, este me suena más a Bug.
En Div funciona perfectamente (vamos que esto ya no deberia decirlo, ya que estoy poniendo siempre cosas que funcionan en DIV tal como las expongo).


Tengo un gancho que se mueve donde el prota se cuelga, este processo le asigna varios valores al proceso del prota (o sea, le cambia algunas propriedades), lo que ocurre es que, la única variable que no se cambia es el gráfico:


Ejemplo:

tenemos el proceso prota(x, y), dentro de el hay varias condiciones que cambian el gráfico (salto, movimiento, etc), o sea lo normal.

Tengo una asignación global que acede a sus propriedades y que tambien las cambia:

idprota = prota(10, 100);

Ahora dentro del proceso gancho(), cuando el prota colisiona con el, este se queda pegao al gancho y le cambio las propriedades:


idprota.x = x - 4; // Le ajusto la posición al quedarse pegao al gancho
idprota.y = y + 30;
idprota.z = - 102;
idprota.graph = 124; // Aqui le cambio tambien el gráfico, pero no me lo cabia... es este el problema de incompatibilidad


Entiendo que los gráficos asignados dentro de prota(x,y) afecten este que asigno despues, pero no deberia, este última asignación deberia tener prioridad cuando el prota esta pegado al objeto gancho().


Entiendo que haciendo esta comprobación dentro del proprio processo prota(x,y) igual podria poner el gráfico correcto bajo estas condiciones.
A ver vuestra opinión y Splinter a ver si esto es un Bug o no, y porque hay diferencias.

Grácias


DCelso

Si cambias el grafico tanto en el prota como en el gancho, puede que esté ahí el problema.
Son procesos ejecutandose en paralelo, y dejará el gráfico el proceso que se ejecute más tarde.
Tendrías que hacer algo para evitar esto, algo en el prota que diga si estoy en el gancho no entonces no cambio de grafico.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

FreeYourMind

Si, entiendo que el problema en Bennu surge por eso, pero es una pena porque en relación a la posición esta se controla en el proceso gancho, o sea que si muevo el personaje se cae del gancho, pero que haga esto lo defino en el proceso gancho, no en el proceso prota(x,y), o sea para las propriedades de posicion funciona bien.
Lo lógico era que hiciera lo mismo para el gráfico, ya que al moverlo las condiciones definidas en gancho() se sobreponen a las definidas en prota(x,y).

FreeYourMind

Ya lo he arreglado, he puesto en la condición de salto del prota (x,y) lo siguiente:

IF (collision (TYPE gancho))
    graph = 124;  // Gráfico de aggarao al gancho
    flags = 0; // Para que al mover el personaje este no mire hacia la izquierda.
ELSE
    graph = 4; // Gráfico de salto
END

en la funcion del gancho he quitado los

graph = 124;  // Gráfico de aggarao al gancho
flags = 0; // Para que al mover el personaje este no mire hacia la izquierda.

Hasta otra ;)

SplinterGU

el problema es que no debes tener seteado "priority" o lo tenes mal seteado...

si bien en DIV el orden de ejecucion de los procesos estaba relacionada con el orden de creacion de los mismos, eso era simplemente una casualidad... en el help del mismo lenguaje dice, que el orden de ejecucion de los procesos con misma prioridad es indeterminado... que se debe usar priority si necesitamos establecer un orden determinado. Este tema ya se hablo y hay varias referencias al respecto. Bennu se comporta como debe comportarse al respecto.

repito algo que dije muchas veces, nunca hay que asumir nada....
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

En este caso se puede asumir, porque es sencillamente ejecución del mismo código, así que la ejecución es identica siempre en cada caso (aqui no estamos hablando de randoms o variables :))

Nunca utilicé lo de priority en mi vida, voy a probarlo a ver que tal, igual resulta más limpio el código.

Gracias por la aclaración.

SplinterGU

no, no, este caso no es distinto... al contrario... no tiene nada que ver eso de ejecucion identica... depende de muchos factores (creacion y muerte de otros procesos, por ejemplo)... y no es predecible...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Me refiero a que los pasos de creación de procesos es siempre el mismo, en este caso sólo entran en juego 2 procesos, y uno se crea antes del otro (el prota antes del gancho). Y lo puedes ejecutar 1000 veces seguidas, en Bennu siempre el proceso prota tendra prioridad sobre el gancho y en Div al reves...

Con esto no te estoy contrariando, sólo informando de lo que ocurre al probar el juego.