DEMO GRAPHIQUE FLMC2007 V0.4.0 (UTILISE DELPHIX ET FMOD)

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 26 févr. 2007 à 07:46
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 26 févr. 2007 à 07:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41643-demo-graphique-flmc2007-v0-4-0-utilise-delphix-et-fmod

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
26 févr. 2007 à 07:50
OH!

premiere Demo de delphifr! c'est rare...


et un gros lol :

For i := 1 to Ball_Count do Begin
With DXSpriteEngine.Engine do Begin
Items[i].X := 320 + Sin( ((Theta/BALL_COUNT)*i+Theta) * PI / 180 ) * (Cos(Theta*Pi/180)*Cos(Theta*PI/180)*160);
Items[i].Y := 240 + Cos( ((Theta/BALL_COUNT)*i+Theta) * PI / 180 ) * (Sin(Theta*Pi/180)*160);
End;
End;

elle prend combien de cycle CPU ceele ci .... mmm ...


voila comment la rendre plus rapide (4x moins de temps~):

var TDTR,TBC,
SFT,CFT,
ST,CT: extended;
const
DTR = Pi/180;
begin
...

TBC := Theta/ball_count;
TDTR := Theta*DTR;
SinCos(TDTR, ST, CT);

with DXSpriteEngine.Engine.Items[0] do
begin
X := CT*ST*300;
Y := ST*100;
end;

ST := ST * 160;
CT := CT * CT * 160;

For i := 1 to ball_count do
With DXSpriteEngine.Engine.Items[i] do
Begin
SinCos( (TBC*i+Theta) * DTR, SFT, CFT);
X := 320 + SFT * CT;
Y := 240 + CFT * ST;
End;

...

End;


avec ça le gains de FPS devrait etre pas mal.
Rejoignez-nous