Sasume
:Kevin Kofler :Ah ? Pourquoi ça devient néfaste ?
Et au fait, le section ".data" n'est plus nécessaire avec TIGCC 0.95, et il est même plutôt néfaste.
Et puis pourquoi il y a (avait ?) des histoires de segment sur TI ?
Kevin Kofler :Tu ne veux pas plutôt dire : "la section par défaut est maintenant .text et pas .data" ?
Parce que:
1. la section par défaut est maintenant .text et .data, donc ton code passe dans la mauvaise, donc loin des autres fonctions, donc références non optimisables.
Il n'y a pas de sections normalement, sauf éventuellement la section BSS (tout est mis dans la même section, .text en l'occurrence, c'était .data avant).Oui, mais pourquoi avant, il y avait cette histoire de section .data ? Je crois me souvenir que si on ne la précisait pas, ça créait des problèmes.
Sasume
:Kevin Kofler :Tu ne veux pas plutôt dire : "la section par défaut est maintenant .text et pas .data" ?
Parce que:
1. la section par défaut est maintenant .text et .data, donc ton code passe dans la mauvaise, donc loin des autres fonctions, donc références non optimisables.
Il n'y a pas de sections normalement, sauf éventuellement la section BSS (tout est mis dans la même section, .text en l'occurrence, c'était .data avant).Oui, mais pourquoi avant, il y avait cette histoire de section .data ? Je crois me souvenir que si on ne la précisait pas, ça créait des problèmes.
geogeo
: Perso je pense que la routine est parfaite
Non, juste optimiser (en taille) la routine de sprites pour le défi.
)

Voyez vous utile de prendre 6 Ko pour ça? De plus lorsqu'un brique est cassé il faurt restaurer le précédent fond, donc réaffciher le décors, la nouvelle map... pensez vous que des que je casse une brique le jeu ralentira?
(surtout si tu mets une animation lorsque la brique se casse, alors là ça devrait bien ralentir si l'affichage du fond n'est pas négligeable).
Et pour avoir des collisions effecticace des billes avec les briques, il faut mieux lire chaque coordonnées de la map ou calculer la position de la bille et donc quelle brique elle touche?
Je dirais même que c'est utile de prendre ces 6 ko si et seulement si avec une implémentation telle que ce que tu décris, le jeu ralentira (surtout si tu mets une animation lorsque la brique se casse, alors là ça devrait bien ralentir si l'affichage du fond n'est pas négligeable).
Ce que je te conseille, c'est d'abord de voir si le gain en fluidité vaudrait ces 6 ko (pour ça, benche avec et sans affichage du fond -- ce n'est pas un problème qu'il ne soit pas initialisé, puisque la vitesse de tes routines de scrolling est complètement indépendante du contenu).
Ensuite, si ça vaut le coup, alors tu peux enregistrer les tiles sous deux formes _à la fois_ :
- un tableau de 6864 octets représentant la map (graphiquement)
- 'char map[18][13]' représentant le contenu de la map par le numéro de chaque tile Après, tu crées une routine 'Paint(char newmap[18][13])' qui compare 'newmap' à 'map' et qui n'affiche que les tiles qui ont changé (donc peut-être routine d'affichage de tile supplémentaire...), puis qui memcpy newmap sur map. Ca te permet de bénéficier de l'amélioration en fps, sans pour autant saccader dès qu'une brique est cassée...
L'idée de comparaison ne me plait pas car si je dois comparer chaque briques (13 par ligne et 18 par colonnes) ça risque d'être très lent.

Au fait, ne me dit pas que tu nous as demandé comment optimiser la routine de fond alors que le fond est statique?lol, bien sûr que non.
Mais j'ai peur pour les 89...Alors dans ce cas, tu es obligé de tout redessiner à chaque fois, non?
A part ça, le shot a l'air sympa Mais j'ai peur pour les 89...

;C prototype: void CopyBufferMapToScreen (void *src, void *dest);
;
;void CopyBufferMapToScreen (register void *src asm("%a0"),
; register void *dest asm("%a1"));
xdef CopyBufferMapToScreen
CopyBufferMapToScreen:
lea 320(a1),a1
move.l #129,d0
;Gris clair
\bcl_copy_buffermap_plan0:
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
lea 12(a1),a1
dbf d0,\bcl_copy_buffermap_plan0
lea 8000-130*40(a1),a1
move.l #129,d0
;Gris foncé
\bcl_copy_buffermap_plan1:
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
lea 12(a1),a1
dbf d0,\bcl_copy_buffermap_plan1
rts