Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Danielo515 on September 18, 2008, 02:39:26 PM

Title: Imagenes fuera buenas, dentro con cosas raras
Post by: Danielo515 on September 18, 2008, 02:39:26 PM
Tengo una serie de imágenes que componen una animación. Las cargo en mi programa mediante load_png (ya que es lo mejor para ciertas cosas) y cuando aparece el proceso en pantalla animado, a su derecha aparece una línea vertical (no en todos los frames creo) con la misma paleta de colores que la animación, pero he revisado todas las imágenes y ninguna tiene ese rebordecillo ¿por que puede ser?
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: Danielo515 on September 18, 2008, 02:41:54 PM
Lo he pasado a camara lenta y la línea aparece incluso antes que el primer gráfico del proceso. No es una línea contínua, sino que tiene varios colores y parpadea ¿? es como un problema de vídeo o algo así.
uso la 0.73
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: SplinterGU on September 18, 2008, 02:55:37 PM
ejemplo, por favor...
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: Danielo515 on September 18, 2008, 05:17:03 PM
Si te refieres a ejemplo de los procesos es este:
[code language="bennu"]process explosiones_miniradar(int oponente, int jugador);
private
int j;
valla_miniradar coche;
begin

region=oponente;
x=rand(miniradar_carril[oponente][0],miniradar_carril[oponente][miniradar_num_carriles]);
y=rand(miniradar_limite_inferior[oponente],miniradar_limite_superior[oponente]);
repeat
   if(j>=2)
      graph=explosion;
      i++;
      j=0;
   end
   j++;

if(coche=collision(type vehiculo_miniradar))
            if(y+40<coche.y && y+85>coche.y && coche.x<x+5 && coche.x>x-5) //solo colisiona con la parte de abajo de la explosión
            rueda_bouncing(x,y+50,0.1,0.1,oponente);
            rueda_bouncing(x,y+50,-0.1,0.1,oponente);
            rueda_bouncing(x,y+85,0.1,-0.1,oponente);
            rueda_bouncing(x,y+85,-0.1,-0.1,oponente);
            signal(coche,s_kill_tree);
            end
         end


frame;
until(i>=25)
end   [/code]


Y el que carga los gráficos es este otro

[code language="bennu"]global
int explosion[25];
int rueda[5];
string filename[25];
string extension=".png";
string ruta="exploss\exploss";
end

process carga_explosiones();
begin

from i=0 to 9;
filename=ruta+"000"+i+extension;
explosion=load_png(filename);
end

from i=10 to 24;
filename=ruta+"00"+i+extension;
explosion=load_png(filename);
end

ruta="rueda\rueda";
from i=0 to 4;
filename=ruta+"000"+i+extension;
rueda=load_png(filename);
end
end[/code]

Ahí te dejo también los archivos de imagen.
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: SplinterGU on September 18, 2008, 05:48:43 PM
siempre me refiero a un ejemplo compilable... asi no me tengo que poner yo a crear todo el entorno de prueba... y me pongo a mirar directo el error y no pierdo tiempo en otras cosas que no hacen al problema, ademas que no puedo realmente perder ese tiempo... te agradezco tu ayuda y comprension al respecto...
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: blostec on September 18, 2008, 06:11:35 PM

Prueba con un pequeño codigo donde solo muestres la animación para ver si sigue apareciendo esa linea que dices. O bien postea el proyecto completo para poder comprobarlo.
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: Danielo515 on September 18, 2008, 08:28:48 PM
Lo siento mucho splinter, no he reparado en ello, ahora mismo lo hago compilable con un simple copy&paste.
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: Danielo515 on September 18, 2008, 09:30:53 PM
Aquí lo tienes splinter. Lo único que tendrás que modificar la ruta de las imágenes a donde tu las tengas, el solito se encarga de cogerlas una a una, solo combia la ruta.
Por cierto, ese feo efecto sigue apareciendo.

[code language="bennu"]import "mod_draw"
import "mod_key"
import "mod_timers"
import "mod_joy"
import "mod_time"   
import "mod_string"
import "mod_proc"
import "mod_effects"

global
int explosion[25];
string filename[25];
string extension=".png";
string ruta="c:\fenix\pixfiesta\radartrafico\exploss\exploss";
int miniradar_limite_superior[4]=0,0,0,300,300;
     int miniradar_limite_inferior[4]=0,250,250,550,550;
int miniradar_carril[4][4]=0,0,0,0,0,160,194,230,260,290, /*Carriles Jugador 1*/
                                    530,564,601,638,670, /*Carriles Jugador 2*/
                                    160,194,230,260,290, /*Carriles Jugador 3*/
                                    530,564,601,638,670; /*Carriles Jugador 4*/

local
int i;

process carga_explosiones();
begin

from i=0 to 9;
filename=ruta+"000"+i+extension;
explosion=load_png(filename);
end

from i=10 to 24;
filename=ruta+"00"+i+extension;
explosion=load_png(filename);
end
 
end               


process explosiones_miniradar(int oponente);
private
int j;
begin
x=rand(miniradar_carril[oponente][0],miniradar_carril[oponente][4]);
y=rand(miniradar_limite_inferior[oponente],miniradar_limite_superior[oponente]);
repeat
   if(j>=2)
      graph=explosion;
      i++;
      j=0;
   end
   j++;

frame;
until(i>=25)
end   
   
    begin
    set_mode(800,600,16);
    set_fps(60,0);
    carga_explosiones();
    repeat
    explosiones_miniradar(rand(1,4));
    frame;
    until(key(_esc));
    end[/code]
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: SplinterGU on September 19, 2008, 10:19:11 AM
Bien, encontrado el problema...
Converti los mapas con el xnview a png y ahi los graficos no dejan basura... pero sin embargo siguian viendose como si tuviera un serruchado de bordes... esto se debia a un error en el modulo de carga de png, cuando convierte mapas de menos de 8bits a mapas soportados por bennu/fenix... y cuando el ancho del png es impar. (la basura es culpa del mismo error)

Ahora tenes varias soluciones:

1) usar png de 8 bits de color o mas
2) usar png de ancho par
3) esperar la nueva version del modulo mod_map

cualquiera es valida...

por cierto, espectacular las explosiones... con un alpha quedan barbaras...

Gracias por el reporte del error...
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: Danielo515 on September 19, 2008, 01:16:49 PM
splinter, eres un máquina solucionando errores!! Joder ojala los encontrara yo tan rápido (y encima los solucionas!) como tú.
O sea, que lo que tengo que hacer es aumentar el tamaño de los mapas hasta un numero par o la profundidad de color no? Creí que ya eran de más de ocho bits, que cosas.
Entonces no tengo que usar el xnview no? con las soluciones que has dicho basta. Por cierto, el nuevo módulo ¿será retrocompatible? Es que todavía no he solucionado los problemas de las librerias que tenía.


PD: ¿Que valor de alpha le has puesto? veré a ver que tal.
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: SplinterGU on September 19, 2008, 02:47:20 PM
no entiendo eso de retrocompatible...
para las dlls que te faltan tenes que bajar dlls-extenas-wip7.x.rar y ogg*.rar.
pero que version estas usando entonces?

no recuerdo el alpha, fue una prueba rapida, proba valores entre 180 y 240, a ver que tal...
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: Danielo515 on September 19, 2008, 02:52:45 PM
estoy usando la 0.73. La 0.75, después de incluir todas las librerías me sigue dando errores de que no encuentra tal o cual libreria, pero ya es el propio programa no un error de windows. Con la 0.73 no he tenido ningún problema, la ogg.dll viene con la 0.73.
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: SplinterGU on September 19, 2008, 03:16:02 PM
cuando faltan dlls dice que no puede cargar tal o cual modulo, pero no se pueden saber cuales faltan a menos que uses un programa como "dependency walker" sobre las dlls que se incluyen y veas que dlls te estan dando error.
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: Danielo515 on September 21, 2008, 01:19:06 PM
No me dice que modulo solo dice, could not load library, no especifica.

Otra cosa splinter, es una sujerencia, pero no voy a abrir un post para esta tontería, es que en el stderr ya que da error con un proceso cuando intenta acceeder a otro no activo estaría bien, si se tiene su id, que dijera que tipo de proceso es aquel al que se intentó acceder, no se si será posible.
Un saludo.
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: Packo_z007 on September 21, 2008, 01:46:24 PM
Hola.Con respecto a esto quiero hacer dos comentarios/preguntas.
1) No se como capturar los mensajes de error del interprete. ¿Podrian poner un ejemplo de un bat?

2) ¿Existe una variable que cumpla la funcion de "name"? es decir que guarde el nombre del proceso. En caso de que no ¿Es posible la implementacion?
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: SplinterGU on September 21, 2008, 02:51:53 PM
Quote from: Danielo515 on September 21, 2008, 01:19:06 PM
No me dice que modulo solo dice, could not load library, no especifica.

Otra cosa splinter, es una sujerencia, pero no voy a abrir un post para esta tontería, es que en el stderr ya que da error con un proceso cuando intenta acceeder a otro no activo estaría bien, si se tiene su id, que dijera que tipo de proceso es aquel al que se intentó acceder, no se si será posible.
Un saludo.

compila usando el parametro -g

y luego corre el programa usando -d

Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: SplinterGU on September 21, 2008, 02:53:36 PM
1) bgdi > log 2>err

2) cual es el uso que queres darle a esto?

Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: Packo_z007 on September 21, 2008, 03:06:29 PM
de hecho no es nada que no pueda hacerse sin esa variable, pero seria comodo para no tener que comparar ids. Por ejemplo podria servir para saber que tipo de proceso es el padre del actual con un father.name.
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: SplinterGU on September 21, 2008, 03:18:20 PM

import "mod_say";

process p3()
begin
    if (father.reserved.process_type == type p1)
        say ("father is p1");
    else
        say ("father isn't p1");
    end
end

process p2()
begin
    p3();
end

process p1()
begin
    p3();
    p2();
end


begin
    p1();
end

Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: Packo_z007 on September 21, 2008, 03:26:02 PM
Gracias. Desconocia la existencia de esa variable. Quiero aprovechar para sugerir que el "Diario de Avances" sea realmente eso, es decir, un log con las novedades (nose cuanto tiempo tendra reserved.process_type pero para mi es una novedad). Me refiero a que no haya comentarios acerca de bugs o felicitaciones (no es que no te las merezcas), por que hacen mas dificil la lectura. No necesariamente tiene que ser ese topic, puede crearse uno nuevo. Y estaria bueno que se publiquen en diferentes lugares los bugs corregidos y las novedades. Es solo una sugerencia. Saludos
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: SplinterGU on September 21, 2008, 03:28:03 PM
no es una novedad, es de toda la vida...
hubo un momento que ponia todos los bugs corregidos, pero la cosa se hizo demasiado larga...
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: Packo_z007 on September 21, 2008, 03:53:06 PM
Bueno acabo de encontrar algo de documentacion en fenixwiki acerca de reserved. Es de fenix, nose si sera del todo compatible pero dejo el link por si a alguien le sirve:
http://www.fenixdocs.com/index.php/Reserved
Title: Re: Imagenes fuera buenas, dentro con cosas raras
Post by: SplinterGU on September 21, 2008, 05:27:26 PM
compila con debug -d y veras que contiene reserved... y no, no es compatible totalmente...