alles flackert, mit image auf bildschirm malen ? geht nicht

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

xverbatim2

Betreff: alles flackert, mit image auf bildschirm malen ? geht nicht

BeitragMi, Nov 09, 2005 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

bin Anfänger und versuche mich gerade in BlitzPlus ,

kann mir bitte jemand detailiert erklären, warum folgender Code bei mir flackert und vor allem, wie ich es hinbekommen kann, daß ich einfach mit einem Image malen kann ?

oder muß ich alle Positionen der MouseX und MouseY Werte in ein Array speichern ???

Unterer einfacher Code soll einfach ein Image laden; eben eine Pinselform, mit der ich auf dem Bildschirm malen möchte !
Buttonabfrage ist erstmal unwichtig, mir geht es nur ums darstellen, ohne flackern....
geht das überhaupt ???

Danke erstmal
xverbatim2


BlitzBasic: [AUSKLAPPEN]
Global Grafik
Graphics 1024,768,32, 1


Grafik = LoadImage (\"c:\pinsel.bmp\")
For x = 1 To 400
X1=MouseX():y1=MouseY()

DrawBlock Grafik,x1 , y1
Flip
Next
Delay 1500

Hubsi

BeitragMi, Nov 09, 2005 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Schmeiss das Flip raus Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

xverbatim2

Betreff: geht nicht

BeitragMi, Nov 09, 2005 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
hi hubsi,

wenn ich flip rausnehme, bleibt der bildschirm schwarz....


?!?!?!!?

Hubsi

BeitragMi, Nov 09, 2005 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiß jetzt nicht welcher Buffer bei BlitzPlus als Standard gilt, zur Not musst den Frontbuffer noch von Hand einstellen: ql:SetBuffer ql:FrontBuffer()
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

BtbN

BeitragMi, Nov 09, 2005 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
Global Grafik
Graphics 1024,768,32, 1
SetBuffer BackBuffer()

Grafik = LoadImage (\"c:\pinsel.bmp\")
For x = 1 To 400
Cls
X1=MouseX():y1=MouseY()

DrawBlock Grafik,x1 , y1
Flip
Next
Delay 1500


Servus

Spikespine

BeitragMi, Nov 09, 2005 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
SetBuffer BackBuffer()


Ich arbete zwar niocht mit B+, und glaube, gehört zu haben, dass der BackBufer schon gesetzt ist, aber probiers einfach mal Very Happy

edit: Ups, da war einer schneller Sad
edit2: oh, sogar 2 leute Laughing
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax

Hubsi

BeitragMi, Nov 09, 2005 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
daß ich einfach mit einem Image malen kann


Er wiull auf einfache Weise den Bildschirm beschmieren Wink Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

BtbN

BeitragMi, Nov 09, 2005 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
aso!

BlitzBasic: [AUSKLAPPEN]
Global Grafik
Graphics 1024,768,32, 1
SetBuffer FrontBuffer()

Grafik = LoadImage (\"c:\pinsel.bmp\")
For x = 1 To 400
X1=MouseX():y1=MouseY()

DrawBlock Grafik,x1 , y1
Next
Delay 1500
 

xverbatim2

Betreff: geht auch nicht

BeitragMi, Nov 09, 2005 20:09
Antworten mit Zitat
Benutzer-Profile anzeigen
hi BORNtobeNAMELESS


erstmal danke, geht nur nicht, ich sehe zwar das sich bewegende image,
doch möchte ich ja, daß das image eine spur hinterläßt !
Soll eben ein Pinsel sein, der pinselt Wink


also...so, als wäre es ein stift, der auf`s blatt gedrückt wird und malt um es mal super einfach auszudrücken.....

gruß und hilfe .....

xverbatim2
 

xverbatim2

Betreff: geht nicht

BeitragMi, Nov 09, 2005 20:12
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
Global Grafik
Graphics 1024,768,32, 1
SetBuffer FrontBuffer()

Grafik = LoadImage (\"c:\pinsel.bmp\")
For x = 1 To 400
X1=MouseX():y1=MouseY()

DrawBlock Grafik,x1 , y1
Next
Delay 1500


der bildschirm bleibt schwarz .....


leider .....ist das denn so schwer zu programmieren ??
 

$tankY

BeitragMi, Nov 09, 2005 20:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Global Grafik
Graphics 1024,768,32, 1
SetBuffer BackBuffer()

Grafik = LoadImage ("c:\pinsel.bmp")
while not x = 400
Cls;Damit das letzte Bild nicht bleibt
DrawBlock Grafik,MouseX() ,MouseY()
Flip
x = x + 1
Wend
Delay 1500
[edit]
ein bissl angepasst, wenn du die 400er Begrenzung raus willst
Graphics 1024,768
Grafik = LoadImage ("c:\pinsel.bmp")
SetBuffer BackBuffer()
While Not KeyHit(1)
Cls;Damit das letzte Bild nicht bleibt
DrawBlock Grafik,MouseX() ,MouseY()
Flip
Wend
  • Zuletzt bearbeitet von $tankY am Mi, Nov 09, 2005 20:30, insgesamt einmal bearbeitet
 

xverbatim2

Betreff: auch nicht !

BeitragMi, Nov 09, 2005 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
arrrrrrrrrrgggghhhhhh.....


geht auch nicht, jetzt flackert alles wieder ;-((

trotzdem danke $tankY



geht denn das nicht ohne flackern.....????

ich glaube, ich muß wohl doch alle positionen in ein array speichern und immer alles in den backbuffer schreiben und flip`n oder ?
ist dann aber sehr sehr umständlich und von ressourceschonendem programmieren weit entfernt .....

hilfe....kann doch nicht so schwer sein .....
 

$tankY

BeitragMi, Nov 09, 2005 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
habs noch ma editiert, schaus dir ma an(das untere dürfte net flackern)
 

xverbatim2

Betreff: nein nein nein ;-((

BeitragMi, Nov 09, 2005 20:37
Antworten mit Zitat
Benutzer-Profile anzeigen
hi $tankY


nein, jetzt kann ich wieder nur das image bewegen; welches KEINE Spur hinterläßt.......ich will doch diese Spur ;-((((

geht leider auch nicht ....
 

$tankY

BeitragMi, Nov 09, 2005 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Graphics 1024,768
Grafik = LoadImage ("c:\pinsel.bmp")
SetBuffer BackBuffer()
While Not KeyHit(1)
DrawBlock Grafik,MouseX() ,MouseY()
Flip
Wend
selber getestet, müsste gehn, bei mir war pinsel.bmp einfach ein blaues bild und das ging
 

xverbatim2

Betreff: nein nein leider nur beschränkt !

BeitragMi, Nov 09, 2005 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,

ich dachte schon SUPER es geht, GEHT ABER NICHT,
weil der Vollbildmodus aus ist, sobald ich Graphics 1024,768,32,1
eingebe, flackert wieder alles....

schade ;-(
 

$tankY

BeitragMi, Nov 09, 2005 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
1024,768,0,1 ;vllt haste keinen 32 bit modus

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMi, Nov 09, 2005 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei BlitzPlus ist es nicht möglich direkt auf den Frontbuffer zuzugreifen
Am einfachsten ist es einen neuen Buffer als image anzulegen und darauf malen!
Und das image natürlich malen in den Backbuffer und flippen

funktionieren sollte das :BlitzBasic: [AUSKLAPPEN]
Global Grafik 
Graphics 1024,768,32,2

Grafik = LoadImage (\"c:\pinsel.bmp\")

NewBuffer = CreateImage (GraphicsWidth (),GraphicsHeight ())
SetBuffer BackBuffer() ; normal überflüssig bei B+
While Not KeyDown(1)
If MouseDown (1)
SetBuffer ImageBuffer (NewBuffer)
DrawImage Grafik ,MouseX(),MouseY()
SetBuffer BackBuffer ()
End If

DrawImage NewBuffer ,0,0
Flip
Wend

End


$tankY: geht, aber es werden nicht alle Bilder angezeigt, da du durch das flippen auf 2 Buffer malst!
[BB2D | BB3D | BB+]

BtbN

BeitragMi, Nov 09, 2005 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst auch einfach eine image erstellen, und darauf malen:

Code: [AUSKLAPPEN]
Graphics 1024,768,32,1

Global image = CreateImage(1024,768)
Global Grafik = LoadImage("c:\pinsel.bmp")

Repeat

 SetBuffer ImageBuffer(image)

 DrawImage(Grafik,MouseX(),MouseY())

 SetBuffer BackBuffer()
 Cls

 DrawImage(image,0,0)

 Flip

Until KeyHit(1)

End


Sollte gehen!

Edit:

ARGH!!! Zu lahm ^^
 

$tankY

BeitragMi, Nov 09, 2005 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
besser Wink
Code: [AUSKLAPPEN]

Graphics 1024,768
Grafik = LoadImage ("c:\pinsel.bmp")
cache = CreateImage(1024,768);Bild wird erstellt,
;wo das gemalte bild zwischengespeichert wird
SetBuffer BackBuffer()
While Not KeyHit(1)
Cls
DrawImage cache,0,0
DrawBlock Grafik,MouseX() ,MouseY()
CopyRect 0,0,1024,768,0,0,FrontBuffer(),ImageBuffer(cache);VorderBuffer
;wird kopiert
Flip
Wend
;SaveImage(cache,"Bild.bmp") optional zum speichern
  • Zuletzt bearbeitet von $tankY am Mi, Nov 09, 2005 21:07, insgesamt einmal bearbeitet

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group