Imagenes fuera buenas, dentro con cosas raras

Started by Danielo515, September 18, 2008, 02:39:26 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Danielo515

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?

Danielo515

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

SplinterGU

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

Danielo515

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.

SplinterGU

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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

blostec


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.

Danielo515

Lo siento mucho splinter, no he reparado en ello, ahora mismo lo hago compilable con un simple copy&paste.

Danielo515

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]

SplinterGU

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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Danielo515

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.

SplinterGU

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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Danielo515

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.

SplinterGU

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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Danielo515

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.

Packo_z007

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?
[STRING] *PANIC Too many strings, allocating more space