Très Juste...
Voici:
void Amos_Loop(void)
{
int x,y;
//**** OUVERTURE ECRAN INTUITION DE 1024x768 sur affichage de 640x480
Screen_Open(0,1024,768,256,Hires+Laced);
// **** CREATION D'UNE GRILLE de 16 sur 16
Ink(5);
for(y=0;y<768;y=y+16)
{
_Draw(0,y,1024,y);
}
for(x=0;x<1024;x=x+16)
{
_Draw(x,0,x,768);
}
// **** BOUCLE DE 0 à 300 POUR CREER le DECALAGE SUR X ET Y EN MEME TEMPS
for(y=0;y<300;y=y+1)
{
Screen_Offset(0,y,y);
}
}
Le rendu est simple. Les décalages verticaux se font toutes les incrémentations alors que le décalage horizontal se décale seulement toutes les 8 incrémentations en faisant un saut de 8 pixels directement. Le code est en C sous le couvert le l'AmOS4 library.
La routine Screen_Offset sortie du module:
void Screen_Offset(int NBSCR,int POSX, int POSY)
{
if((POSX>=0) && (POSY>=0))
{
if(SBase[NBSCR]!=NULL)
{
#ifdef __amigaos4__
IIntuition->ScreenPosition(SBase[NBSCR],SPOS_ABSOLUTE,-POSX,-POSY,0,0);
#else
ScreenPosition(SBase[NBSCR],SPOS_ABSOLUTE,-POSX,-POSY,0,0);
#endif
}
}
}
Voilou!!-
Projet AmOS4 - Retour vers l'Amos sous OS4...
SAM440EP - A1200 3.1 de base
Message édité par : Sharynn / 22-12-2021 20:39