Avances, Diario de...

Started by SplinterGU, April 17, 2008, 03:00:51 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

probaste el escalado, rotacion y moviento de los flics? me parecio interesante incluir esas caracteristicas...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

osk

Muchas gracias!!!!

Ahora funcionó de maravilla!!

josebita

Splinter: Todo va sin problemas, he tocado todas las teclas que pone en la ayuda :).
A primera vista, diría que has hecho un trabajo genial :)

SplinterGU

gracias... se hizo esperar y dio mucho trabajo, no por lo complicado, sino por la cantidad de trabajo... y eso que todavia faltan muchas cosas por incluir y mejorar...
pues bien...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

#169
El juego Bloqueado tira sin problemas (he tenido que añadir unos mod_*, pero poco más).
Uno de los screenshots tiene un contador de fps:



Packo_z007

Acabo de bajar la wip 8 para windows. Tengo problemas al compilar un proyecto que incluye una dll propia.
En la 7.5 funciona perfectamente bien:

player.inc:75:error:Undefined procedure ("check_side")

Check_side es una funcion de la dll.Dejo el codigo de la dll:

#include <stdio.h>
#include <bgdi.h>
#include <bgddl.h>
#include <math.h>

static int *Tiles;
static int Map_width;//ancho del mapa en columnas
static int Map_height;//altura del mapa en filas
static int aux;

static int bgd_collision_init (INSTANCE * my, int * params){
    Tiles = (int *)params[0];
    Map_width = params[1];
    Map_height = params[2];
    return 1;
}

int bgd_check_down(INSTANCE * my, int * params){ 
    params[0] = (int)((params[0]+1)/32);
    params[1] = (int)((params[1]-1)/32);
    aux = (int)(params[2]/32)*Map_width;
    for(;params[0] <= params[1];params[0]++){
        if(Tiles[params[0]+aux]){
            return -params[2]%32;
        }else if(params[0] == params[1]){
            return 0;
        }
    }                             
}

int bgd_check_up(INSTANCE * my, int * params){ 
    params[0] = (int)((params[0]+1)/32);
    params[1] = (int)((params[1]-1)/32);
    aux = (int)(params[2]/32)*Map_width;
    for(;params[0] <= params[1];params[0]++){
        if(Tiles[params[0]+aux] == 1){
            return 32-params[2]%32;
        }else if(params[0] == params[1]){
            return 0;
        }
    }                             
}

int bgd_check_side(INSTANCE * my, int * params){ 
    params[0] = (int)((params[0]+1)/32);
    params[1] = (int)((params[1]-1)/32);
    aux = (int)(params[2]/32);
    for(;params[0] <= params[1];params[0]++){
        if(Tiles[aux+params[0]*Map_width] == 1){
            if(params[3] == 0){
                return -params[2]%32;
            }else{
                return 32-params[2]%32;
            }
        }else if(params[0] == params[1]){
            return 0;
        }
    }                             
}

DLSYSFUNCS  functions_exports[] = {
{ "COLLISION_INIT", "PII", TYPE_DWORD, bgd_collision_init },
{ "CHECK_DOWN", "III", TYPE_DWORD, bgd_check_down },
{ "CHECK_UP", "III", TYPE_DWORD, bgd_check_up },
{ "CHECK_SIDE", "IIII", TYPE_DWORD, bgd_check_side },
    { NULL          , NULL    , 0        , NULL             }
};

Tambien quiero comentar que desde la 7.5 tengo este warning:

librender:2: warning: Variable redeclared ("alpha_steps")

Un saludo
[STRING] *PANIC Too many strings, allocating more space

SplinterGU

tenes que prefijar functions_exports con el nombre de la dll, seguido de _, por ejemplo...

collision_functions_exports

lo del warning es solo un "warning" a nivel dlls, ignorarlo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Packo_z007

Perfecto.Ademas ya no esta el problema con el map_clear.Gracias.
[STRING] *PANIC Too many strings, allocating more space

animanegra

Epa tragamanzanas en linux tambien compila y funciona perfectamente en bennu. Una cosa :D si no os quereis complicar para probar un juego:

for I in `ls mod_*`; do echo $I >> nombrejuego.imp; done;

y despues compilar y ejecutar.

PD: Esque no me queria complicar mirando cuales eran las librerias que debia meterle XD
PD2: enhorabuena!! al final dominaste al caballo!!! :D
"PoCoYo es dios!!"

SplinterGU

seguimos trabajando...
correccion en reasignacion de ids strings reciclados, lo mismo para los mapas...
en el caso de las strings hacia que los textos bajan mas lento que en fenix... ahora esta corregido...

pronto subire nueva version...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Packo_z007

#175
Buenas.Encontre un posible pequeño bug. Si haces un define, que termine en ; y sin dejar espacio haces un comentario:

#define cosa a;//comentario

o si no pones el ;

#define cosa a//comentario

Tenes este error en el compilador:
La instruccion 0 en "0x7c920f29" hace referencia a la memoria en "0x00000000".La memoria no se puede "read".
Se soluciona dejando el espacio.El segundo caso es poco comun pero el primero no tanto.

Edito:
Pongo la linea en cuestion por que da otros problemas:

#define set_hitTester(a,b,c,d,e)  a._relx = b;a._rely = c ;a.size_x = d*10;a.size_y= e*10;a._attack = 0

Aca la linea en la que lo uso:

(linea 339) set_hitTester(hitTester_id,20,-30,10,20);

Si multiplico d*10 y e*10 no compila: Invalid Character ("HITTEST") (linea 339)
pero si multiplico solo uno compila bien.
Hay otro error que no he podido recrear, con las mismas lineas, pero la salida era: Unknow identifier ("_r")  (linea 339)
lo cual no tiene ningun sentido.
[STRING] *PANIC Too many strings, allocating more space

SplinterGU

los voy a revisar... y te digo... gracias...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

Quote from: Packo_z007 on September 16, 2008, 12:52:01 AM
Buenas.Encontre un posible pequeño bug. Si haces un define, que termine en ; y sin dejar espacio haces un comentario:

#define cosa a;//comentario

o si no pones el ;

#define cosa a//comentario

Tenes este error en el compilador:
La instruccion 0 en "0x7c920f29" hace referencia a la memoria en "0x00000000".La memoria no se puede "read".
Se soluciona dejando el espacio.El segundo caso es poco comun pero el primero no tanto.

Edito:
Pongo la linea en cuestion por que da otros problemas:

#define set_hitTester(a,b,c,d,e)  a._relx = b;a._rely = c ;a.size_x = d*10;a.size_y= e*10;a._attack = 0

Aca la linea en la que lo uso:

(linea 339) set_hitTester(hitTester_id,20,-30,10,20);

Si multiplico d*10 y e*10 no compila: Invalid Character ("HITTEST") (linea 339)
pero si multiplico solo uno compila bien.
Hay otro error que no he podido recrear, con las mismas lineas, pero la salida era: Unknow identifier ("_r")  (linea 339)
lo cual no tiene ningun sentido.

revise estos errores y a mi no me pasan, seguro tienen que ver con la expansion del comando, pero no pude reproducirlos, los use, pero no paso nada... tiene sentido que me digas que esto te paso en la wip2, pero en estas versiones lo dudo, porque recuerdo claramente haber corregido el tema del con/sin espacio...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

#178
estuve trabajando en los bugs de rotaciones y en acelerar el dibujado en pantalla...
el eterno error de las rotaciones ya esta corregido... se debia principalmente a un problema de precision de calculos al usar ints, ahora pase algunos campos a float, elimine codigo innecesario, pero supongo que ahora algunos casos el dibujado podria ser mas lento... aun queda una diferencia de desplazamiento de 1 pixel con respecto al grafico sin rotar y el grafico rotado, todavia tengo que hacer un analisis mas detallado y ver si lo que falla es el blit rotativo, el blit normal, o el calculo de los vertices (quizas esto tambien sea parte de otro problema que tengo y explicare mas abajo en este post)...
tambien acelere el tema de los dibujado de textos en pantalla, en los casos de numeros enteros, hice una nueva funcion que es un 800% mas rapida la conversion de numeros a texto con respecto a la funcion de C... (lo que no quiere decir que los textos se dibujen un 800% mas rapido, pero todo cuenta)
tambien en la version actual se me escapo algo, que al restaurar el fondo de pantalla y si el dump es = 0, restaura siempre el fondo, por eso no hay una mejora significativa con respecto a versiones anteriores que si lo hacen, aun asi, el rendimiento en la mayoria de los casos es mejor, con este cambio nuevo, en circunstancias de resposo obtuve un rendimiento de 102000 fps cuando antes obtenia con la misma prueba unos 24000 maximo... en casos de varios procesos en pantalla, y uno con actualiaciones, obtuve rendimientos 3500fps donde antes eran 670... pero me esta quedando alguna basura en el video que tengo que corregir y no logro detectar aun la cirscuntancia, pero mientras estaba escribiendo este texto se me ocurrio posibles motivos...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

Felicitaciones Splinter, esto se ve muy bien. Que bien que ya está lo de los ángulos. Y la velocidad que has alcanzado me impresiona bastante. Felicidades.  :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)