Wie kann ich einen F200-User in einem definierten Bildschirmbereich (z.B. 100x30 Pixel Rechteck) mit dem Stift einen Halbkreis malen lassen? Danke, bin noch neu und im Forum nichts gefunden.
Begrenzen mit VIEWPORT. Einen Kreis malen? :D
http://www.glbasic.com/forum/viewtopic.php?id=121
Viewport ist prima, aber nicht das Programm soll malen, sondern der User, per Stift, so à la:
setze vier viewports (mehrere Malbereiche auf demselben Screen)
warte auf mousedown
malbereich = viewport-da-ist-der-stift-drin
solange mousedown (Stift gleitet auf dem touchscreen rum)
setze pixel mouse-x, mouse-y
merke[zeiteinheit] = "mouse-x, mouse-y"
end-solange
// mouseup, der User hat den Stift gehoben
if kuckMalObHalbKreis(malbereich,merke[]) print "gut gemalt"
else print "das war kein halbkreis, so ein Gekrakel... nochmal"
repeat oben
end
Also so ähnlich aber da bleibt kein Pixel am Bildschirm kleben...
WHILE TRUE
MOUSESTATE mx, my, b1, b2
IF b1
SETPIXEL mx, my, RGB(255, 255, 255)
ENDIF
SHOWSCREEN
WEND
Moin thomasp,
kleines problem mit showscreen ;), der flipt nicht nur die Buffer sonder löscht den Backbuffer leider auch gleich mit.
Darum wird Dir nur der aktuelle punkt angezeigt.
Entweder Du kopierst den Pixel immer wieder, oder speicherst ihn in ein Array, oder mit hilfe von Types.
K, das wars, muss erst mal richtig wach werden und dann gehts zum Möbelrücken ;)
> kleines problem mit showscreen , der flipt nicht nur die Buffer sonder
> löscht den Backbuffer leider auch gleich mit.
Tatsache? Schönen Dank. Wie hält man denn dann auf Bitmap-Ebene den Status? Gibt es so etwas wie einen schnellen Blockmove-Befehl, Backbuffer nach Zwischenspeicher-Buffer sichern?
Erstmal Semmeln holen...
Quote from: thomaspaber da bleibt kein Pixel am Bildschirm kleben...
Doch, und wie die kleben. Bau zum Beispiel einfach nur mal USEASBMP ein.:D
WHILE TRUE
MOUSESTATE mx, my, b1, b2
IF b1
SETPIXEL mx, my, RGB(255, 255, 255)
ENDIF
USEASBMP
SHOWSCREEN
WEND
Cheers
Prima, es läuft, danke. Jetzt kleben Sie, aber man merkt (wie immer) das der Teufel im Detail steckt... muss die Punkte verbinden und überhaupt die ganze Malerei muss "dicker" werden. Und dann mal schauen wie es sich auf dem F200 verhält.
dann musst du Drawrect nehmen und ausmitteln, so dass das Rect den ursprungspunkt in der mitte hat !
so in etwar
....
DRAWRECT MausX-Breite/2,MausY-Hoehe/2,Breite,Hoehe,Farbe(RGB)
....
Dann kannst du quasi die Strichstärke machen ;)
Oder vielleicht mit einem Kreis als Sprite, mal schauen was schneller läuft.
Japp, oder so , wieso beliebt ;)
Oder in Bayern würde man sagen(in Hochdeutsch):
Das kannst du machen, wie der Dachdecker, die Ziegeln verkehrt montieren, dass das Wasser hinaufläuft, dann sparst du dir die Dachrinne!
statt Setpixel halt DRAWSPRITE mit einem dicken Punkt.