J'ai repris mon apprentissage du zoom.
vince (./135) :
oui, tu peux faire varier le zoom comme tu faisait varier la position de ton sprite dans ton programme précédent... un appui sur une flèche augmente ou diminue le facteur
(Je precise que je bien lu mais que je n'ai pas compris ton explication Vince.)
Mon but est de faire apparaitre une image reduite à la taille minimale du pixel et de zoomer dessus jusqu'a ce qu'elle occupe tout l'écran.
Je peux y arriver en faisant comme cela :
char main()
{
InitIRQ();
CLI;
SetBuffers(SCREEN, RENDER ,0);
/* set the palette */
SetRGB(pal);
DrawFBox(0,0,160,102,0);
SCBX(SCB) = 80;
SCBY(SCB) = 51;
SCBHS(SCB) = 1;
SCBVS(SCB) = 1;
SCBDATA(SCB) = titre;
for(;
{
for(i=5; 10 > i; i++) {
SCBHS(SCB) = 2;
SCBVS(SCB) = 2;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=10; 15 > i; i++) {
SCBHS(SCB) = 4;
SCBVS(SCB) = 4;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=15; 20 > i; i++) {
SCBHS(SCB) = 6;
SCBVS(SCB) = 6;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=20; 25 > i; i++) {
SCBHS(SCB) = 8;
SCBVS(SCB) = 8;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=25; 30 > i; i++) {
SCBHS(SCB) = 10;
SCBVS(SCB) = 10;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=30; 35 > i; i++) {
SCBHS(SCB) = 12;
SCBVS(SCB) = 12;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=35; 40 > i; i++) {
SCBHS(SCB) = 14;
SCBVS(SCB) = 14;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=40; 45 > i; i++) {
SCBHS(SCB) = 16;
SCBVS(SCB) = 16;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=45; 50 > i; i++) {
SCBHS(SCB) = 18;
SCBVS(SCB) = 18;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=50; 55 > i; i++) {
SCBHS(SCB) = 20;
SCBVS(SCB) = 20;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=55; 60 > i; i++) {
SCBHS(SCB) = 22;
SCBVS(SCB) = 22;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=60; 65 > i; i++) {
SCBHS(SCB) = 24;
SCBVS(SCB) = 24;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=65; 70 > i; i++) {
SCBHS(SCB) = 26;
SCBVS(SCB) = 26;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=70; 75 > i; i++) {
SCBHS(SCB) = 28;
SCBVS(SCB) = 28;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=75; 80 > i; i++) {
SCBHS(SCB) = 30;
SCBVS(SCB) = 30;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=80; 85 > i; i++) {
SCBHS(SCB) = 32;
SCBVS(SCB) = 32;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=85; 90 > i; i++) {
SCBHS(SCB) = 34;
SCBVS(SCB) = 34;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=90; 95 > i; i++) {
SCBHS(SCB) = 36;
SCBVS(SCB) = 36;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=95; 100 > i; i++) {
SCBHS(SCB) = 38;
SCBVS(SCB) = 38;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=100; 105 > i; i++) {
SCBHS(SCB) = 40;
SCBVS(SCB) = 40;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=105; 110 > i; i++) {
SCBHS(SCB) = 42;
SCBVS(SCB) = 42;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=110; 115 > i; i++) {
SCBHS(SCB) = 44;
SCBVS(SCB) = 44;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=115; 120 > i; i++) {
SCBHS(SCB) = 46;
SCBVS(SCB) = 46;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
for(i=120; 125 > i; i++) {
SCBHS(SCB) = 48;
SCBVS(SCB) = 48;
DrawSprite(SCB);
Vsync();
SwapBuffers(); }
}
}Le problème c'est que c'est long et lourd en terme de Ko.
J'ai essayer d'initialiser HS et VS pour faire qqchose du style
for HS=1; 256>HS;HS++ mais cela ne donne rien.