Wouh, tu avances vite, en plus, tu as l'air d'avoir plein d'idées
Pour le problème du clown qui ne bouge pas ses yeux, ton code ressemble à ça :
DrawFBox(0, 0, 160, 102, 0);
SCBDATA(SCB) = 0;
SetRGB(pal);
DrawFBox(0,0,160,102,0);
SCBX(SCB) = 0;
SCBY(SCB) = 0;
SCBDATA(SCB) = clown;
SCBX(SCBs) = 0;
SCBY(SCBs) = 0;
SCBDATA(SCBs) = oeil;
x =0;
y =0;
DrawSprite(SCB);
x++;
if (x>70) x=70;
SCBX(SCBs) = x;
SCBY(SCBs) = y;
DrawSprite(SCBs);
y++;
if (y>42) y=42;
SCBX(SCBs) = x;
SCBY(SCBs) = y;
DrawSprite(SCBs);
Vsync();
SwapBuffers();
Donc, tu ne passes qu'une fois sur le x++ et le y++ (pas de boucle contrairement à la version autonome ou l'ensemble est pris dans un for( ; ; ) )
Donc, tu devrais modifier de cette manière (par exemple, il y a plein de solution)
DrawFBox(0, 0, 160, 102, 0);
SCBDATA(SCB) = 0;
SetRGB(pal);
DrawFBox(0,0,160,102,0);
SCBX(SCB) = 0;
SCBY(SCB) = 0;
SCBDATA(SCB) = clown;
SCBX(SCBs) = 0;
SCBY(SCBs) = 0;
SCBDATA(SCBs) = oeil;
x =0;
y =0;
while ((x < 70) && (y < 42))
{
DrawSprite(SCB);
x++;
if (x>70) x=70;
SCBX(SCBs) = x;
SCBY(SCBs) = y;
DrawSprite(SCBs);
y++;
if (y>42) y=42;
SCBX(SCBs) = x;
SCBY(SCBs) = y;
DrawSprite(SCBs);
Vsync();
SwapBuffers();
}
Petite remarque, quand tu fais :
y++;
if (y>42) y=42;
Tu fais l'opération d'ajout, puis le test, puis éventuellement l'initialisation (donc 2 puis 3 lignes exécutées à chaque fois).
Ce serait plus rapide de faire :
if (y<42) y++;
Le test sera toujours fait, mais l'incrémentation ne sera faite que 42 fois (donc 2 puis 1 ligne exécutée à chaque fois)
Ca ne changera rien à ton programme, mais sur un programme complexe impliquant pas mal d'opération entre 2 affichages, ce genre de détails mis bout à bout permet de gagner du temps machine et de faire plus de trucs (ou d'améliorer la rapidité du tout)
Pour le coup de la palette de l'OVNI, je ne suis pas certain que le rouge fasse parti de la palette du fond. Mais j'aime bien l'effet obtenu, avec un peu de transparence, ça fait très effet spétial de SF

(et ouais, quelquefois, on trouve des trucs intéressants par erreur)