Warum wird die Textausgabe mit WritePixelFast überschrieben?
Übersicht

SilbersurferBetreff: Warum wird die Textausgabe mit WritePixelFast überschrieben? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo leute,
in meinen Code habe ich mit WritePixelFast und lockbuffer um Speed zu erhalten geproggt, komisch ist nur das bei mir die Textausgabe mit dem WritePixelFast Befehl überschrieben wird. Erst habe ich normal im Backbuffer gearbeitet dann wie Jetzt im Imagebuffer, bei beiden varianten das gleiche ist das normal ? Nachtrag: Hautsächlich Texte mit Zahlen hier der Code: Code: [AUSKLAPPEN] Graphics 1024,768,32,1
SetBuffer BackBuffer() Global buffer=CreateImage (1024,768) Type partikel Field x#,y# Field leben# Field xspeed#,yspeed# Field r,g,b End Type anzahl=5000 For t=0 To anzahl createpartikel(0,0,.2) Next ;=============> Hauptschleife <============== Repeat UpdatePartikel(MouseX(),MouseY()) DrawBlock buffer,0,0 Color 255,255,255:Text 0,14,"Partikel "+Str(anzahl) Flip Until KeyHit(1) ;==========> Hauptschleife Ende <============ ;+++++++++++++ Type Partikel ++++++++++++++++ Function CreatePartikel(x#,y#,zeit) p.partikel = New partikel p\x = x p\y = y p\leben = zeit p\xspeed = 0 p\yspeed = 0 p\r = Rnd(0,255) p\g = Rnd(0,255) p\b = Rnd(0,255) End Function ;+++++++++ Type Partikel abarbeiten +++++++++ Function UpdatePartikel(xstart,ystart) SetBuffer ImageBuffer(buffer) Color 0,0,0:Rect 0,0,1024,768 LockBuffer() For p.partikel = Each partikel ro#=(ro#+6) Mod 360 p\x = p\x+(p\xspeed+Sin(ro)) p\y = p\y+p\yspeed+Cos(ro) WritePixelFast p\x,p\y,p\r*$10000+p\g*$100+p\b,ImageBuffer(buffer) If p\leben>0 p\leben = p\leben -.1:p\yspeed=p\yspeed+Rnd(.03,.06) Else p\x=xstart p\y=ystart If MouseDown(1) p\leben=Rnd(18) p\x=xstart p\y=ystart p\xspeed = Rnd(-.3,.3) p\yspeed = Rnd(-1,-4) EndIf EndIf Next UnlockBuffer() SetBuffer BackBuffer() End Function |
||
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD Hompage : http://home.arcor.de/silbersurfer01/ Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip |
Apocalyptic |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bei mir wird nichts überschrieben... und das mit dem image würde ich wieder ändern, ist total unsinnig. Außerdem würde ich noch eine Abfrage machen, ob sich die Partikel innerhalb des Bildschirms befinden, sonst gibts Fehler, vielleicht ist das ja das Problem. | ||
Suum cuique
[ www.ffs-net.de.vu ] [ Raycaster ] |
Master King of |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Aber wenn das der Fehler wäre würde das Programm abstürzen und nicht irgendwas überschreiben!
___ fos |
||
Silbersurfer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke Apocalyptic,
Daran hat es gelegen jetzt gehts auch bei mir ohne den Text zu überschreiben gruss Silbersurfer |
||
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD Hompage : http://home.arcor.de/silbersurfer01/ Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip |
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Master King of hat Folgendes geschrieben: Aber wenn das der Fehler wäre würde das Programm abstürzen und nicht irgendwas überschreiben! Kommt auf die Grafikkarte und auf den Modus (Debug?) an. Bei mir zeichnet er z.B. im Fenstermodus auf der anderen Seite weiter.
|
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Master King of
Ein Bild im Speicher kann man sich so vorstellen wie ne lange Linie ![]() Wenn man dann nicht auf die Begrenzung der Segmente achtet beim malen passiert das eben das man in nem anderem Segment landet und außerhalb der Linie malt man lustig im Speicher rum ![]() Text bzw. Bilder werden eben aus Segmenten zusammen gesetzt . |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group