DeltaFX
Messages postés
449
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
2
13 mai 2006 à 16:09
Ah tiens, pareil, le with "truc" do, au moment de l'ecriture de cette fonction, j'ignorais l'usage de with.....
Quant au truc pas logique, faut savoir que alpha représente le pourcentage de "jour" d'un Twilight Time : alpha =0 nuit, alpha = 127, on est pil au mileu de la période de crépuscule (civil dans ce cas), alpha =255, pouf, le centre du soleil a dépassé l'horizon, il fait jour. Ca c'est pour le matin (0 -->255). Pour le soir, c'est le meme principe mais dans l'autre sens (255 -->0). Donc au lieu d'avoir a verifier l'heure en fonction du midi solaire pour savoir si soir ou matin, j'ai pondu un peu de maths pour obtenir alpha directement (d'ou la valeur absolue dans le calcul). Alpha n'a de "sens" que pendant les période de pénombre. en plein mileu de nuit alpha devient négatif, et en pleine journée, alpha execede 255 gaillardement, et n'est jamais entier.
Or, j'utilise alpha dans la fonction skinmix comme niveau de transparence entre un skin de nuit, peu contrasté, concu pour pas gené l'adaptation de l'oeil à la vision nocturne (donc a dominante rouge), et un skin de jour, plus contrasté. J'utilise pour ca AlphaBlend, et le niveau de transparence c'est l'alpha (un byte). Pour faire vite a l'époque, au lieu de tout modifier pourque ca soit homogène, j'avais juste rajouter un trunc.
donc :
if (Result < 0) then Result:=0;
if (Result > 255) then Result:=255;
permettait de m'assurer qu'alpha était bien constaint entre 0 et 255.
if not UseTwilight then
begin
if (Result > 0) then Result:=255;
if (Result < 255) then Result:=0;
end;
et ca, dans le cas ou l'utilisateur ne souhaite pas de transition douce (UseTwilight=false), ca me permet de dire que le jour commence en fait dès qu'il ne fait plus strictement nuit, et que la nuit commence dès qu'il ne fait plus strictement jour. Selon les valeur des test et l'ordre, je peux trancher ou je veux, à mi-pénombre.... etc etc.
Bon c'est vrai qu'elle est moisie cette série de procédures, je dois les reprendre sérieusement et les remettre a plat, les expurger toussa. M'enfin je me les sers moi meme avec assez de verve, mais je ne permets pas qu'un autre me les serve, les réflexions pas gentilles sur mes procédures toutes pourrites.
Et pis c'est pas de ma faute d'abords, c'est la faute au tmediaplayer de delphi qui lui, est tout moisi et se met en vrac parfois selon le path du fichier son. Voyant ca, il a fallu que je m'attelle au WMP importé en activeX, pour finalement me rendre compte qu'avec ma plateforme win98se WMP6.4, j'étais a la traine vis à vis des WMP7.1, 9, 10 etc etc.... et que mon code pour ma bécane risquait de foutre le souk sous d'autre envirronement....
Moralité, ben j'ai attacké Bass.dll, histoire de me débarrassé des trucs zindoz. Et là, mmmmh bass.dll, j'ai pas pu m'empecher de mettre un equaliseur 20bandes, puis faire une tite bricole EAX pour balader la source du son en 3D sur 2 hp, puis tester le coup de je joue un mp3 sur les hp avant de la voiture, et le son d'un fim sur les HP arrieres (j'ai viré tout ca tres vite, c'était pour me roder)
Jace, heureusement que t'as pas vu le reste du source avant que je découvre les design pattern observer, moi et mes forms qui ne se connaissent pas, mais doivent s'échanger des messages, j'avais une tripoté de globales et des timers partout pour regarder quelle var avait changé.
Pis bon, 3 ans a creuser dans une mine de cobol 8heures/jour, putain ca encrasse les neurones !