Vous n'êtes pas identifié.
Ma nouvelle découverte, c'est ça :
// Cette fonction retourne le niveau actuel // du contraste. // Fonction extraite de DB-Lib.h par Swifter. unsigned char get_contrast() { asm{ mov ax,0x40 mov es,ax mov al,es:0xE5 sub al,0x12 shr al,0x1 } return _AL; } // Initialise le contraste. // Mais attention aux problemes de compatibilite // entre g100 et g100+. // Cette fonction est beaucoup plus rapide que l'ancienne. // Fonction extraite de DB-Lib.h par Swifter. void contrast(unsigned char niv) { asm{ mov ax,0x40 // ÚÄÄÄÄÄÂÄÄÄÄÄ¿ mov es,ax // ³g 100³g100+³ mov al,niv // ÃÄÄÄÄÄÅÄÄÄÄÄ´ shl al,0x1 // ³ 0 ³ 0 ³ contraste minimal add ax,0x2210 // ³ 8 ³ 9 ³ contraste normal mov es:0xE5,al // ³ 12 ³ 12 ³ contraste initial xor bl,bl // ³ 15 ³ 16 ³ contraste optimal pour le gris int 0x7C // ³ 22 ³ 22 ³ contraste maximal } // ÀÄÄÄÄÄÁÄÄÄÄÄÙ }
En d'autres termes, pour ceux qui ne comprennent pas bien l'assembleur, ca veut dire que j'ai trouvé l'adresse où le niveau courant du contraste est stocké, c'est à dire dans l'octet situé à l'adresse de 0x40:0xE5.
Cela permet donc une nouvelle fonction contrast() ultra rapide par rapport à l'ancienne, qui faisait environ 30 appels à l'int 7Ch. Cette nouvelle fonction, elle, ne fait qu'un seul appel et ne passe donc pas par tous les niveaux de contraste pour trouver le bon.
Quant à get_contrast(), elle résouds le problème du retour de contraste (lol,xth tu va pouvoir enfin utiliser ma fonction contraste). En effet, il suffit de récupérer le contraste au début de votre programme, puis de le remettre à la fin.
Hors ligne
ca c cool ! comme ca on vérifie le niveau du contrast quand on lance le jeu. Et on le remes quand on le quitte !
Bravo !
Hors ligne
VOUAAAAAAAAAAAAAAAAAAAAAIIIIIIIIIIIIIIIIIIIIIS BRAVO SWIFTER
Je test ca maintenant!!!
Voila c inclus dans Btour... sending... t trop fort ca marche en plus ca ma fait gagner quelque octets de taille :mrgreen:
Hors ligne
Swifter pourquoi quand on utilise foncitonne getkey en mode 0, quand on l'utilise les touches F1...F6, on doit appuyer deux fois dessus ?
Hors ligne
c klair c mis deja dans jetfight !
Hors ligne
voila pourquoi quand je fais:
while(key!=94 && key!=106)
{ key=getkey(0);
}
je n'ai pas le meme résultat que:
while(getkey(0)!=94 && getkey(0)!=106);
le deuxième me demande d'apuyer deux fois sur F6 alors que le premier fonctionne très bien.
Hors ligne
tiens c'est bizarre je vais regarder ca...
Hors ligne
ah oui...
en fait c'est normal...
regarde bien ton code...
dans le deuxième, tu appelle deux fois getkey(0)...et comme le mode 0 attends une touche, eh bien il attends une première touche, si elle est différente de 94, il attends une deuxieme touche....
alors que la premiere ne fais qu'un seul appel à getkey() par boucle...
c'est la meme chose si tu fais ca avec getch()
Hors ligne
ok merci !
Hors ligne
Ah pas mal ces fonctions ca va servir!
(surtout pour qqs-uns plutot ronchons... pas vrai x-th? )
Hors ligne