Vous n'êtes pas identifié.
Y-a-til un autre moyen pour faire le scrolling horizontal à part pixel par pixel ?
Hors ligne
mot/mot ou octet/octet
Suivant le mode d'affichage que tu as choisi C ou D c plus ou moins facile à coder mais je crois que la lib de Julien entre autres, le font...
Hors ligne
En horizontal ???
en vertical c'est super simple mais en horizontal ?!?
euh, Julien si t'es là tu peux m'expliquer s'il te plait !
Hors ligne
Ca dépend de ce que tu veux scroller en fait; si c'est tout l'écran, ou juste une partie, ou un sprite etc...
Je n'ai pas fait de fonction spécifique pour le scrolling, c'est Swifter qui en avait inclus dans une ancienne version de db-lib, mais je crois qu'il les a retirées... C'étaient des fonctions pour scroller la totalité de l'écran dans une des quatre directions, ce qui est généralement peu utile (sauf pour des animations de transition d'écrans etc)
Hors ligne
le décalage de bits en ASM et C ca existe KillTiti. A toi après de gérer le bit le plus à droite qui doit aller à gauche sur l'autre mot/octet.
Hors ligne
Je sais que ça existe ! mais c'est pas un peu long ?
Hors ligne
c plus rapide que du pixel/pixel en tout cas.
De plus le décalage de bit est géré par le processeur, mais je ne sais pas combien ca prend de cycles. Je dirai pas beaucoup mais c pas sûr.
Hors ligne
Ben pour faire du scrolling horizontal t'a pas trop le choix.
Soit c'est des décalages, soit c'est les instructions spécifiques NEC ins et ext. Les multiplications (ou division) par 2^n c'est beaucoup plus long qu'un decalage.
Pour utiliser les intructions Nec, t'a le choix, soit tu converti en hexa a l'aide de la doc nec, soit t'utilise une version modifiée de nasm, qui doit trainer sur mon site.
http://tonton1664.free.fr pour une version windows pas récente
http://team1664.org/debian-graph100/ pour la version sources (le patch est dans le .diff.gz)
Dans les deux cas ton programme ne tournera plus sur l'emulateur, ces deux instructions ne sont pas supportées (tiens d'ailleurs si quelqu'un a un compilo crosoft avec les atl, ce serait gentil de les ajouter (je peux aider si besoin))
Hors ligne
oué comme di Julien ça dépend ce que tu veux scroller...genre si c'est des sprites de 16x16 ou 8x8 y'a des fonctions
déja toutes faites de la DB-lib...après ça dépend aussi du mode que tu veux utiliser (en 3 couleurs ou 5 couleurs ou
même noir et blanc)...donc soit plus précis! Et pis j'ai oublié de te souhaiter la bienvenue donc BIENVENUE!
Hors ligne
Merci !
La je parle en Noir et Blanc !
Et je n'affiche pas de sprites. Je veux juste avoir une première image dans le buffer vidéo et avoir le nouvelle ligne à rajouter dans une quelconque adresse mémoire.
Donc je veux décaler l'image qui est dans le buffer vidéo et rajouter d'un coté ou de l'autre une ligne.
Hors ligne
salut a tous !
hum effectivement ce que tu cherche étais dans une des anciennes versions de db-lib. c'était les fonction rightscroll() et leftscroll().
Cela dit ces fonctions étaient très lentes (et je pensais pas qu'elles serviraient un jour) donc je les ai virées de db-lib.
Si tu veux vraiment ces fonctions, je peux te les renvoyer par mail.
Cependant tu peux utiliser la fonction drawmap() qui elle est bien présentes dans db-lib. Les avantages :
la vitesse d'affichage, et tu n'as pas besoin de stocker ton image dans la mémoire vidéo.
exemple concret pour un scroll vertical :
tu fais une image bmp de 64 de hauteur, et de ... 768 de longueur.
tu code ton image avec spritecoder fourni avec db-lib.
ensuite tu affiche le segment que tu veux de ta map en utilisant drawmap().
(cela permet entre autre de choisir la vitesse du scroll : soit du pix par pix, 2 pix par 2 pix ou encore plus vite...ce qui était impossible avec les rightscoll)
Si tu veux un exemple de code source, regarde le moteur de zelda, fourni dans db-lib.
voila j'espère que ca va t'aider
Hors ligne