Vous n'êtes pas identifié.
Alors voila voici la mise a jour de DB-Lib, version 1.01.
Les nouveautés sont :
- L'ajout de fonction que j'avais déjà sorties sur le forum : getkey(), get_contrast(), get_calctype(), clearkeybuf()...
- La suppression de fonctions inutiles : celles de scrolling, db_on(), db_off()...
- La modification de fonctions existantes : contrast(), desactint9() et actint9()...
Et enfin, ce qui vous intéressera le plus je pense, j'ai refait toutes les fonctions d'affichage de sprites clippées.
Avant, elles étaient optimisées en taille, maintenant elle le sont en vitesse.
Mes tests ont révélés de nets progrès pour les fonctions de type d16clip :
Par exemple, pour d16clip_or(), sur le même programme, l'ancienne fonction tournait a 38.63 fps. La nouvelle tourne a 47.13 fps.
La nouvelle fonction est donc 22% plus rapide que l'ancienne (en sachant que le programme est une boucle qui affiche 90 sprites de 16*16). Par contre l'optimisation est moins efficace (ce qui est normal) pour les fonctions de type d8_clip.
L'amélioration en vitesse est de l'ordre de 3.5%
Download sur : http://team.graph100.com rubrique Flash / Jeux
Hors ligne
ouais parfait
comme ca tu me diras si les optimisations se ressentent vraiment dans un programme plus évolué que le mien...lol
Hors ligne
bah en fait les optimisations se ressentent bcp (surtt dans le mode butcher où on a besoin de bcp de puissance, dc moins on en gaspille pour l'affichage, mieux c'est), et dans l'ému ça trace c bien ...... mais le pb .............. c'est que tous mes sprites sont à présent inversés, càd ke tu les scindes verticalement, et tu échangles les deux parties !!
Hors ligne
Heureusement que BMP100 est là pour inverser les images...
Hors ligne
arf
c bizarre t sur que c toi ka pas des sprites mal codés?
moi qd ya 1111111100000000 (1= noir 0=blanc)
je code 0x00FF enfin c com ca que ca marche le codage non?
bon en tout cas je vais modifier mes fonction (mais apres manger seulement)
Hors ligne
bon ca y est j'ai corrigé ce soi-disant bug (qui n'était qu'une différence de codage de sprites)...
au moins comme ca les sprites codées pour la version 1.00 de db-lib sont compatible avec cette version...
et en plus les fonctions corrigées sont encore plus rapide qu'avant...
Hors ligne
oui, vaudrais mieux respecter le codage lol sinon ça va ètre drôle les prochains messages de newbies-programmer mdr
vais tester ça sur battletank, jme sert de la routine 16x16 pour dessiner le parterre ^^
ps: je rappelle que ça:
#define copyscreen(a,b) movedata(a,0,b,0,0x400)
n' est pas plus rapide que la fonction de duobab:
void copyscreen(unsigned int sego, unsigned int segd)
{
asm push es;
asm push ds;
asm push si;
asm push di;
asm mov ax,segd;
asm mov es,ax;
asm mov di,0;
asm mov ax,sego;
asm mov ds,ax;
asm mov si,0;
asm cld;
asm mov cx,512;
asm rep movsw;
asm pop di;
asm pop si;
asm pop ds;
asm pop es;
}
bon pour les pop de fin on peut tous les enlever à priori!
Hors ligne
oué je vais faire le test pour savoir laquelle des deux routines est la plus rapide
Hors ligne
Si on utilise des ptr far pour indiquer les buffers, plutot que des entiers pour les segments, on peut faire encore plus rapide
void far* Screen1 = (void far*)0x1A200000L;
void far* Screen2 = (void far*)0x1AA00000L;
void far* Buffer1 = (void far*)0x1A600000L;
void far* Buffer2 = (void far*)0x1AE00000L;
void copyscreen(void far* Orig, void far* Dest)
{
asm push ds;
asm les di,Dest;
asm lds si,Orig;
asm cld;
asm mov cx,512;
asm rep movsw;
asm pop ds;
}
Mais je sais pas si c vraiment utile :P
Hors ligne
bon alors c'est parti mise à jour de la nouvelle version ...
et ça marche très bien
Hors ligne
alors j'ai testé la vitesse des différentes fonctions copyscreen() avec une boucle qui utilise 14 fois la fonction ; voici les résultats :
- fonction movedata() : 97.86 fps
- fonction duobab (optimisée) : 99.10 fps
- fonction julien : 97.9 fps
donc j'ai changé et pris la fonction a duobab dans dblib...merci pour la remarque xth (sauf kil ne faut pas enlever push ds et pop ds lol)
Hors ligne
Je crois que movedata utilise un movsb et pas un movsw...
Hors ligne
bon alors j'annonce les nouveautés pour la future versions
- fonction drawmap( ) affiche un buffer complet (128*64) avec clipping, ce qui permet un scrolling multidirectionnel... Les tests pour l'instant sont concluant, ma boucle de moteur graphique multidirectionnel tourne a 70 fps en pix par pix
- une librairie indépendante de db-lib qui permettra de creer, dans une variable, une map affichable avec drawmap( ), a partir de sprite predefinis (comme race ou bomberman par exemple)... mais ce projet n'est pas encore sur...
- codeur de sprites, de map et d'image, sous dos...
et c tout pour le moment...
pour le moment g du mal a programmer avec le bac qui approche
donc ce sera pdt les vacances
Hors ligne
euh...
multitaille
ta map fais n'importe quelle taille (mais plus grand que 128*64) et tu affiche sur l'endroit ou tu veux...
ce sera pareil pour les sprites avec quelques contraintes tout de meme :
en longueur seulement 8 ou 16, par contre la hauteur est quelconque...
Hors ligne
T'inquiète pour les sprites je m'en occupe :P
Hors ligne
arf
mais mon codeur de sprite est deja finis de toute facon...
Hors ligne
C'est pas grave ça peut servir, mon codeur est assez "lourd" (en taille) donc y'a des chances pour que certains préfèrent une version plus légère
Faudra juste veiller à ce que les codes générés soient identiques
Hors ligne
Un codeur de sprite, un afficheur de carte...
ça tombe bien avec le concours de l'UCF
On poura utiliser des sprites animées sur les maps ?
Un truc qui me parait essentiel, donc je voudrais en etre bien sûr : on pourra afficher n'importe quelle endroit de la carte (cad pas forcement des coordonnées multiples de 8 ) ?
Hors ligne
On poura utiliser des sprites animées sur les maps?
Apparemment non, puisque c'est une image de dimensions >128*64 et pas un moteur utilisant des tiles 8*8 ou 16*16
Un truc qui me parait essentiel, donc je voudrais en etre bien sûr : on pourra afficher n'importe quelle endroit de la carte (cad pas forcement des coordonnées multiples de 8 ) ?
On dirait que oui, de toutes facon afficher par multiples de 8 c un peu limité
Hors ligne