Maus Auswahlviereck

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Lutz-Development

Betreff: Maus Auswahlviereck

BeitragMo, Aug 09, 2004 13:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich würde gerne ermöglichen, dass man mit der Maus ein Auswahlviereck über ein dargestelltes 2D-Bild ziehen kann, und dann die entsprechenden Koordinaten von Anfangs- und Endpunkt bekommt. Das ganze findet nicht im Vollbild-Modus, sondern in einem Fenster statt.
Wie kann ich das in BlitzBasic realisieren?

Danke im Voraus.

Gruß,
Thomas
  • Zuletzt bearbeitet von Lutz-Development am Mo, Aug 09, 2004 14:49, insgesamt einmal bearbeitet

Jan_

Ehemaliger Admin

BeitragMo, Aug 09, 2004 13:29
Antworten mit Zitat
Benutzer-Profile anzeigen
ägypten?

wth ist ein Auswahldreieck?

meinst du sowas?
am anfang
Code: [AUSKLAPPEN]
hidepointer


in der Hauptschleife
Code: [AUSKLAPPEN]
Line MouseX(),MouseY(),MouseX()+10,Mousey()
Line MouseX(),MouseY(),MouseX(),Mousey()+10
Line MouseX()+10,MouseY(),MouseX(),Mousey()+10



vielleicht meinst du auch sowas wie nen ScrollBalken Button
between angels and insects

ChrisAttack

BeitragMo, Aug 09, 2004 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
neee. rts mäßig....
also ein rechteck mit der maus ziehen und so sachen auswählen...
B3D
MSVC++
DX9SDK

rambo256

BeitragMo, Aug 09, 2004 13:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube er meint sowas wie bei einem Strategiespiel so ein "auswahlviereck" also womit man mehrere Einheiten markiert.
Oder? Very Happy
Asus F53z

Das Leben ist eine reine Konkatenation...

Jan_

Ehemaliger Admin

BeitragMo, Aug 09, 2004 13:38
Antworten mit Zitat
Benutzer-Profile anzeigen
und das mit nem 3 eck?
Code: [AUSKLAPPEN]

color 255,0,0
if mousehit(1) then
   sX=MouseX()
   sy=MouseY()
endif

if mousedown(1) then
   Line SX,SY,SX,MouseY()
   Line SX,SY,MouseX(),SY
   Line SX,MouseY(),MouseX(),SY
endif
between angels and insects
 

Lutz-Development

BeitragMo, Aug 09, 2004 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie komm ich auf Dreieck?

Sorry, dass ich da irgendwie geistig nicht ganz auf der Höhe war Rolling Eyes

Gemeint ist natürlich ein Auswahlviereck, ala Windows oder diverse Strategiespiele. Ich brauch das aber eher für Windows, ich möchte einen bestimmten Bereich auswählen. Vorgestellt hab ich mir das so:

Man klickt mit der Maus, dann bekommt man das Viereck angezeigt, je nachdem wo man mit der Maus hinfährt. Bei erneutem Klick ist dann die Auswahl fertig. Im Programm brauche ich dann die Anfangs- und die Endklick-Koordinaten.

Sorry für die Verwirrung nochmal.

Gruß,
Thomas

Jan_

Ehemaliger Admin

BeitragMo, Aug 09, 2004 14:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Codename Clipping:

Code: [AUSKLAPPEN]
color 255,0,0
if mousehit(1) then
   clip=1-clip
   if clip
      endX=mouseX()
      endy=mouseY()
   else
      sX=MouseX()
      sy=MouseY()
   endif
endif

if clip
   rect sx,sy,MouseX(),MouseY(),0
endif
between angels and insects

Xenon

BeitragMo, Aug 09, 2004 14:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier ein Beispielcode:

Code: [AUSKLAPPEN]
Const gw = 800
Const gh = 600

Graphics gw, gh, 32, 2
SetBuffer BackBuffer()
Color 255, 0, 0

img = CreateImage(gw, gh)

mdown = False

Repeat
   If mdown Then
      ex = MouseX()
      ey = MouseY()
      If Not MouseDown(1) Then
         mdown = 0
         SetBuffer ImageBuffer(img)
         Color 255, 255, 255
         drawmouserect sx, sy, ex, ey, True
         SetBuffer BackBuffer()
         Color 255, 0, 0
      End If
   Else
      If MouseDown(1) Then
         sx = MouseX()
         sy = MouseY()
         ex = sx
         ey = sy
         mdown = 1
      End If
   End If
   
   DrawBlock img, 0, 0
   If mdown Then drawmouserect sx, sy, ex, ey
   
   Flip
Until KeyDown(1)
End

Function drawmouserect(sx, sy, ex, ey, dotted = False)
   If sx > ex Then
      h = sx
      sx = ex
      ex = h
   End If
   If sy > ey Then
      h = sy
      sy = ey
      ey = h
   End If
   For i=sx To ex
      Plot i, sy
      Plot i, ey
      If dotted Then i = i + 1
   Next
   For i=sy To ey
      Plot sx, i
      Plot ex, i
      If dotted Then i = i + 1
   Next
End Function
 

Lutz-Development

BeitragMo, Aug 09, 2004 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke,

werde ich mal ausprobieren!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group