Etwas auf eine Rchteck zeichnen!

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

sven123

Betreff: Etwas auf eine Rchteck zeichnen!

BeitragSo, Jul 25, 2004 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Graphics 640,480,0,2
Function lernphase()
boxx=32
boxy=32
Rect 300,250,boxx,boxy,1
For x=0 To boxx-1
For y=0 To boxy-1
Next
Next
If  MouseDown(1) Then
WritePixel MouseX(),MouseY(),000
EndIf
End Function
;
lernphasean=Input$("Lernphase an (1):")
If lernphasean=1 Then
While Not KeyDown(1)
lernphase()
Wend
EndIf

So,nun in diesem winzigen Codeabschnitt zeichne ich ein Rechteck!Nun möchte ich das man in dieses Rchteck zeichnen kann,doch mit der Funktion writtepixel , wird der Pixel den ich zeichne nicht auf das Rechteck sondern auf den Hintergrund gezeichnet!Wie kann ich es bewerkstelligen das nur in das erstellte Rechteck und nicht auf den Hintergrund gezeichnet wird.Ich habe mir schon überlegt,das Rechteck als Bilddatei extern abzuspeichern und dann erst in das Programm hineinzuladen und erst dann die änderung daran vorzunehmen,aber wenn ich das richtig sehe Löst dass auch nicht mein Problem und selbst wenn wäre das eine Umständliche Lösung,aber eine Bessere fällt mir gerade nicht ein.Wenn diese Frage unütz ist oder schon irgendwann einmal beantwortet wurde dann ignoriert einfach den Thread,ich wäre aber für jede Hilfe dankbar.

Danke schon mal in Voraus euer Sven123!
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken

Hubsi

BeitragSo, Jul 25, 2004 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Diese beiden Schleifen bewirken erstmal gar nichts:Code: [AUSKLAPPEN]
For x=0 To boxx-1
For y=0 To boxy-1
Next
Next
Wenn ich Dein eigentliches Problem richtig verstanden habe, dann schau Dir mal ImageBuffer und CreateImage an Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Travis

BeitragSo, Jul 25, 2004 18:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, mache das Rechteck am besten als Bild. Das kannst du auch mit CreateImage erstellen. Jetzt prüfst du bei betätigung der Maustaste, ob dein Mauszeiger auf dem Bild liegt (ImagesRectCollide) und zeichnest dann direkt in den ImageBuffer des Rechteckbildes.

Code: [AUSKLAPPEN]

Rechteck = CreateImage(200,100)
SetBuffer ImageBuffer(Rechteck)
Rect 0,0,200,100,1

PicX = 100
PicY = 100


SetBuffer BackBuffer()
 Repeat
  Cls

   DrawImage Rechteck, PicX, PicY

   mx = MouseX()
   my = MouseY()

   Color 200,0,0: Oval mx-1,my-1,2,2,1

   If MouseDown(1) Then
    If ImageRectCollide(Rechteck, PicX, PicY, 0, mx, my, 1, 1) Then
     SetBuffer ImageBuffer(Rechteck)
     Plot mx-PicX,my-PicX
     SetBuffer BackBuffer()
    EndIf
   EndIf

 Flip
Until KeyHit(1)
End
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.
 

sven123

BeitragSo, Jul 25, 2004 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Thx Travis!(ärger) hätte mir doch lieber besser noch genauer die Onlinehilfe durchgelesen.
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken

TheProgrammer

BeitragSo, Jul 25, 2004 19:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab Travis Code n' bissl abgeändert (jetzt wird ne gleichmäßige Linie gezeichnet)

Code: [AUSKLAPPEN]

Rechteck = CreateImage(200,100)
SetBuffer ImageBuffer(Rechteck)
Rect 0,0,200,100,1

PicX = 100
PicY = 100


SetBuffer BackBuffer()
 Repeat
  Cls

   DrawImage Rechteck, PicX, PicY

   mx = MouseX()
   my = MouseY()

   Color 200,0,0: Oval mx-1,my-1,2,2,1

   If MouseDown(1) Then
    If ImageRectCollide(Rechteck, PicX, PicY, 0, mx, my, 1, 1) Then
     SetBuffer ImageBuffer(Rechteck)
     If mx_tmp > 0 Then Line mx-PicX,my-PicX,mx_tmp-PicX,my_tmp-PicX
     mx_tmp = mx : my_tmp = my
     SetBuffer BackBuffer()
    Else
     mx_tmp = 0
     my_tmp = 0
    EndIf
   Else
    mx_tmp = 0
    my_tmp = 0
   EndIf

 Flip
Until KeyHit(1)
End
aktuelles Projekt: The last day of human being

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group