Warum wird die Textausgabe mit WritePixelFast überschrieben?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Silbersurfer

Betreff: Warum wird die Textausgabe mit WritePixelFast überschrieben?

BeitragDi, Jun 15, 2004 15:22
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Jun 15, 2004 18:13
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Jun 15, 2004 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber wenn das der Fehler wäre würde das Programm abstürzen und nicht irgendwas überschreiben!
___
fos
 

Silbersurfer

BeitragDi, Jun 15, 2004 18:33
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Jun 15, 2004 19:28
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Jun 15, 2004 22:58
Antworten mit Zitat
Benutzer-Profile anzeigen
@Master King of

Ein Bild im Speicher kann man sich so vorstellen wie ne lange Linie Wink
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 Confused
Text bzw. Bilder werden eben aus Segmenten zusammen gesetzt .

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group