Oui, c'est possible avec graphx. Utilise les fonctions de sprites clippées.
Si possible, découpe ta map de 320x200 en carrés de 16x16 (ou 32x32), et n'affiche que ceux qui ont une partie visible.
Sinon, genlib te permet de faire ça plus facilement puisque la lib te propose directement des fonctions prévues pour cette situation.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Tu ne peux pas, la fonction que tu utilises copie par octets.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
tu peux tjs faire 2 boucle for imbrikees... pour afficher les tiles
et pis apres
tu fe x++ ou x--

Plus t'avance moins vite
Moins t'avance plus vite...
forums/406geogeo> il n'est pas obligé d'utiliser un buffer temporaire de sa taille perso.
Il lui suffit d'afficher sur un buffer de taille normale les sprites visibles. Simplement.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
oui c vrai ca fera un gain de place et de rapidite assez important
en effet
pourkoi afficher des sprites(ou coca) ke l'on ne vois pas?

Plus t'avance moins vite
Moins t'avance plus vite...
forums/406L'intérêt, c'est que si tes tiles sont assez petits (8x8 ou 16x16), le fait d'afficher tout l'écran d'un coup permet de réduire de beaucoup le coût du scrolling. Si tu passes par un buffer intermédiaire, l'affichage de sprite sera très rapide (alignement horizontal de 8 ou 16 pixels), c'est en réalité le scrolling qui prendra une bonne partie du temps. Et tu n'as pas besoin de remplir tout le buffer 320x200, tu peux prendre un buffer un peu plus grand que l'écran qui représente l'endroit autour de la voiture (256x128 si tu as des tiles 16x16), donc il n'y a pas de surcoût lié à cela. En plus, si tes tiles ne sont pas animés, tu peux carrément éviter de dessiner les sprites dans le buffer intermédiaire.
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
orage Le 08/11/2003 à 13:40 ok merci...
En fait, c'est moi ou la fonction GX_PutSprite08_..() marche mal avec graphX ?
: On ne voit qu'une partie du sprite 8 bits...
Heu...
Puis-je profiter du sujet pour poser une question?
En fait, comment vous feriez vraiment pour faire un scrolling simple en imaginant qu'on a une map assez grande (genre celles de Mario) et que je ne veux pas utiliser un méga-buffer qui ferait 1600x800 pixels pour les maps standardes.
Et ce en utilisant par exemple les routines ScrollLeft et cie de extgraph?
Si on ne défile qu'à droite, un algo de m consisterait simplement à faire un ScrollRight à chaque fois puis à redessiner la dernière colonne de tiles, qui se trouverait en fait entre les positions x 175 à 160. Mais c'est sale.
Ce que j'ai fait dans Mariole n'est pas mieux (loin de là), il consiste à tout redessiner les tiles à chaque fois (en utilisant deux variables scrlX et scrlY qui contiennent un offset entre 0 et 15, puis baseX et baseY qui contient le nombre de motifs défilés dans chaque direction). Bien entendu qu'il faut alors utiliser des routines de sprites clippées, et comme si ça ne suffisait pas, j'ai du faire une routine de copie de tampon vers l'écran spéciale, sinon sur TI92 on voyait des déchêts à droite (routine qui consomme 20% de temps processeur, ce qui n'est pas étonnant vu mon niveau).
Puis pour les sprites ils ont une valeur absolue, ça évite de devoir tous les décaler lorsque l'écran défile, rend plus facile leur gestion et la détection de collisions avec le décor. Est-ce une bonne solution?

orage> C'est sûrement toi. Poste le code de ton utilisation.
Brunni> La technique que tu utilises n'est pas si mauvaise. Avec des ScrollRight (plutôt ScrollLeft), ça peut marcher aussi, mais ce n'est pas pratique si ton arrière-plan est animé ou si tu as plusieurs niveaux de scrolling.
Sinon, la technique utilisée par genlib (cf doc de genlib) est assez puissante.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Zeph Le 09/11/2003 à 09:32 Bah oui c'est un peu normal... Tu décale le buffer vidéo, tout ce qui en dépasse est perdu, faut réafficher...
J'ai même pas envie de donner une solution vu que j'aime pas le "voilà ma source corrigez-là" que tu pratique un peu trop souvent.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
orage Le 09/11/2003 à 10:42 Et puis c'est pas un forum d'entre aide ? C'est un peu normal que les anciens aident les nouveaux (sans avoir des préjugés hautains (je ne vise absolument personne (sauf Vertyos))
Pim89 Le 09/11/2003 à 11:19 Brunni > je crois que c'est la méthode la plus simple, on réaffiche tout à chaque cycle. Par contre c'est sur que ça bouffe bcp de temps. Mais dans Mario le décort est animé (il me semble), donc t'as pas trop le choix.
Tu peux pas non plus faire un giga buffer, trop gros. Et avec des routines de "vrai" scroll, à un moment où un autre tu serais obliger de réafficher de nouveau sprite (car tu affiches au début que ceux qui sont dans la zone de proximité du héro), donc bon, ça ferait des effets de vitesse de décort bizarre ect. Enfin faut essayer, je l'ai honnetement jamais fait.
Non-Webmaster et
non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les
Webmasters .«- Pas Moo ! ^^
orage Le 09/11/2003 à 14:23 je poses la question pour savoir comment y remédier
orage Le 09/11/2003 à 17:46 Oui, j'ai le meme probleme...
Mais si il faut tout réafficher, ça doit etre chaud d'optimiser assez pour optenir un résultat assez rapide...
Sur TI-92+, est-ce que tu as remarqué que la bordure de droite aussi avait ce "problème" ?
Tu ne dois pas tout réafficher, seulement la colonne de pixels qui manque.
Ça ne devrait pas être trop lent...

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »