Rahmen ziehen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

kreisman

Betreff: Rahmen ziehen

BeitragSo, Nov 14, 2004 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wollte ,wenn ich die linke maustste gedrückt halte ein rahmen von den ersten mauskoordinaten zu den aktuellen gezeichnet werden, allerdings hab ich mit der repeatschleife ein problem, weil die alten koordinaten immer mit jedem durchlauf erneutert werden. Habt ihr ne idee?
Danke scho ma im voraus!

Rob_

BeitragSo, Nov 14, 2004 17:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Code wäre vorteilhalft.
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX

simi

BeitragSo, Nov 14, 2004 17:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

speichere die Variablen ab, wenn du die maustaste drückst.
Pseudocode:
Code: [AUSKLAPPEN]

if keyHit then x=MausX:y=MausY
id MouseDown then Rect x,y,MausX-x,....


cu simi

kreisman

BeitragSo, Nov 14, 2004 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If MouseHit(1) Then
  oldx=MouseX()
  oldy=MouseY()
EndIf
If MouseDown(1) Then
 Rect oldx,oldy,MouseX()-oldx,MouseY()-oldy, 0
EndIf


so funzt der code aber wie kann man das anders herum zeichnen?Also von rechts unten nach links oben????
 

ke^kx

BeitragSo, Nov 14, 2004 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist so noch nicht ganz korrekt, aber ich will dir ja nicht den Spaß verderben^^

Code: [AUSKLAPPEN]

Graphics 640, 480
SetBuffer BackBuffer ()

Global oldx, oldy
Global laenge1, laenge2
Global x, y

Repeat

   Cls


   If MouseHit(1)  = 1 Then
      oldx=MouseX()
      oldy=MouseY()
   EndIf

   Oben_o_unten ()
   
   Rect x, y, laenge1, laenge2, 0
   
   
Flip

Until KeyHit(1) = 1


End




Function Oben_o_unten ()
   
   If  MouseX () > oldx Then
       x = oldx
      laenge1 = MouseX () - oldx
   EndIf
   
   If MouseX () < oldx Then
      x = MouseX ()
      laenge1 = oldx - MouseX ()
   EndIf
   
   If  MouseY () < oldy Then
      y = MouseY ()
      laenge2 = oldx - MouseY ()
   EndIf
   If MouseY () > oldy Then
      y = oldy
      laenge2 = MouseY () - oldy
   EndIf
   
End Function


Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM

Bigmichi

BeitragSo, Nov 14, 2004 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Geht Perfekt =)


Code: [AUSKLAPPEN]
Graphics 1024,768,16,2
SetBuffer BackBuffer()




While Not KeyHit(1)



If MouseHit(1) Then
  oldx=MouseX()
  oldy=MouseY()
EndIf
If MouseDown(1) Then



 If oldx < MouseX() Then
    If oldy < MouseY() Then
       Rect oldx,oldy,MouseX()-oldx,MouseY()-oldy, 0
    Else
       Rect oldX,MouseY(), MouseX() - oldX ,  oldY - MouseY(), 0
    End If
 
 Else
    If oldy > MouseY() Then
       Rect MouseX(),MouseY(), oldx - MouseX() ,  oldy - MouseY(), 0
    Else
       Rect MouseX(),oldY, oldx - MouseX() ,  MouseY() - oldY, 0
    End if
 
 End If
 
 
EndIf



Flip
Cls
Wend
End

kreisman

BeitragSo, Nov 14, 2004 21:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke funzt

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group