Bewegte Objekte
-
Hallo
Also. Ich hab eine Zeichenfläche von 1400x1050 pxl.
Darauf sollen sich 20 32x32 pxl Große Bilder die in einer ImageList gepeichert sind alle 100 ms einen pxl von links nach rechts bewegen.
Ich hab das bisher so gemacht:Canvas->Brush->Color=clBtnFace; Canvas->FillRect(TRect(0,0,Screen->Width,Screen->Height)); for(unsigned int x=0;x<20;x++) imageList->Draw(Canvas,pos.x,pos.y,typ%imageList->Count,true);Das wird alle 100ms gemacht.
Des Problem ist halt, dass es manchmal stockt bzw leicht zu flackern anfängt.
Weiß einer von euch wie man das anderst lösen kann?
Gruß KY
-
DOuble-Buffering (=>Google)
-
joa des kenn ich aber des hilf nicht gegen des stocken!
-
gegen das stocken einfach icq, msn, yahoo, winamp etc. ausmachen, dann koennte es klappen.
-
rapso schrieb:
gegen das stocken einfach icq, msn, yahoo, winamp etc. ausmachen, dann koennte es klappen.
Oder besseren Computer/Graphikkarte/Bildschirm kaufen

Oder vielleicht kann mal doch noch den Code irgendwie optimieren, bevor mal Geld rauswirft

Grüssli
-
Dravere schrieb:
rapso schrieb:
gegen das stocken einfach icq, msn, yahoo, winamp etc. ausmachen, dann koennte es klappen.
Oder besseren Computer/Graphikkarte/Bildschirm kaufen

Oder vielleicht kann mal doch noch den Code irgendwie optimieren, bevor mal Geld rauswirft

beides hilft dir nichts gegen gelegentliches ruckeln weil das OS die taskzeit mal woanders vergibt.
-
ich hab en core2duo mit 2x2,4 ghz
und ne 8800 gts daran kanns wohl kaum liegen!
-
ky_fr34k schrieb:
ich hab en core2duo mit 2x2,4 ghz
und ne 8800 gts daran kanns wohl kaum liegen!Doch kann es. Wie misst du denn z. B. die 100 ms?
-
Blue-Tiger schrieb:
Wie misst du denn z. B. die 100 ms?
en timer mit nem intervall von 100 ms
des müssen ja net genau 100ms sein wenns 150 ms sind ist auch net schlimm!
des ist halt so ne grobe richtung!
also wenn du meinst das des stocken von ner überlastung der cpu her kommt liegst du falsch! die cpu belastung liegt bei 0,8%!!!
-
0,8% Auslastung! Wenn dein Programm nur so wenig Resurcen zur Verfügung gestellt bekommt bzw. ausnutzt kann es ja nur ins stocken kommen.
Also wenn ich ein normales DirectX Programm hab, steigt die CPU-Auslastung auf 50%.
Um was für eine Sprache/Framework/API/Library handelt es sich bei dem Code eigentlich. Ich könnte mir vorstellen das der intern ein GetMessage-Loop benutzt die für grafisch aufwendige Programme meist unzureichend ist.
Gruß
Don06
-
Der Timer und die ImageList sind aus der vcl glaub ich.
Die Komponenten, die der Borland Builder 6 nutzt!
DirectX hab ich mir auch schon angeschaut aber des ist mir im moment zu kompliziert!
Wäre vll GDI+ ne Lösung?