Einheit/Figur auswählen mit der Maus

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Pizzahut

Betreff: Einheit/Figur auswählen mit der Maus

BeitragDi, Apr 21, 2009 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute!
Ich schreibe gerade an einem "Lemming-Klon"
Meine kleinen Wuseltierchen, werden via Types geladen:
Code: [AUSKLAPPEN]

   For sheep.sheep=Each sheep
       sheep\anim = (sheep\anim +1) Mod 3 
      If MilliSecs()>sheep\time + sheep\v Then
         sheep\time=MilliSecs()
         If sheep\richtung=1 Then
            If sheep\fall=0 Then
               sheep\x =sheep\x-1
            End If
             DrawImage sheeps_links, sheep\x,sheep\y, sheep\anim
         Else
            If sheep\fall=0 Then
               sheep\x=sheep\x+1
            End If
              DrawImage sheeps_rechts, sheep\x,sheep\y, sheep\anim
         End If
         ;Eigenschaften
         ;Text 20,20, "Y:" + sheep\y
         ;Text 20,30, "X:" + sheep\x
         ;Text 20,40, "F:" + sheep\fall
         
      End If
   
      ;EndIf
Next

Der Type sheep hat folgende Eigenschaften:
Code: [AUSKLAPPEN]

   Type sheep        ;Type "sheep"
      Field art      ;Welche Art von "Lemming" :D
      Field x        ;x Koordinate
      Field y        ;y Koordinate
      Field v         ;v Geschwindigkeit (Unterschied fallen, Fallschirm etc.)
      Field richtung ; links=1 oder rechts=2
      Field fall     ;Fällt das Schäfchen? :D
      Field anim     ;Animationsframe
      Field time      ;Animationszeit

   End Type

Wenn ich jetzt eine Einheit/Lemming via Mausklick auswählen möchte, wie gehe ich da am besten ran?
Komme anscheinend einfach nicht drauf!
Danke im vorraus!
mfg pHut
Version: BlitzPlus[/quote]

ozzi789

BeitragDi, Apr 21, 2009 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Also die Abfrage ob die Maus drüber ist, oder wie man ihn markieren könnte?
Arbeitest du mit einem Offset?


mfg
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Pizzahut

BeitragDi, Apr 21, 2009 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich denke, es würde reichen, wenn ich weiß, ob die Maus auf einem "Lemming" ist. Wenn ich das in eine Mousedown-Bedingung reintue, müsste es meinem Ziel, einen Lemming auszuwählen eigentlich näher kommen.
Offsets habe ich, ja --> bei der Abfrage von Kollisionen der Lemminge mit der Umgebung. Pixel +2 etc.
Hoffe man kann mir helfen!
mfg phut

ComNik

BeitragDi, Apr 21, 2009 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wenn ich richtig verstehe was du meinst dann könnte es so aussehen:
Code: [AUSKLAPPEN]

  If MouseHit(1) Then          ;also wenn die linke Maustaste gedrückt wird
   For sheep.sheep = Each sheep            ; Schleife durch alle Sheeps
     If MouseX() >= sheep\x + <offset> and MouseY >= sheep\y + <offset> and MouseX() <= sheep\x + <breite deines Schaafes\Lemminges> and MouseY() <= sheep\y + <höhe deines Schaafes>  Then

    ;WAS PASSIEREN SOLL WENN DER LEMMING AUSGEWÄHLT IST

  Next
End If
WIP: Vorx.Engine

BladeRunner

Moderator

BeitragDi, Apr 21, 2009 17:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Und wenn Du noch andere Mousehits abfragen willst tu dir einen gefallen und mach das Ergebnis von Mousehit zu Beginn deiner Mainloop in eine Variable, sonst wunderst Du dich später über ein sehr seltsames Verhalten deines Spieles Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Pizzahut

BeitragDi, Apr 21, 2009 18:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey Danke!
Comniks Code hat prima funktioniert!
und bladerunner was ist eigentlich der unterschie zwischen mousehit/mousedown außer der returnwert?
Und ja, steht ja in der faq imho Wink
Danke un chiquen Abend!

AnniXa

BeitragDi, Apr 21, 2009 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Mousehit gibt die menge an klicks seit dem letzten mousehit aus,
und mousedown prüft ob gerade die taste gedrückt wird.

soweit ich weis ist es am besten wenn man so verfährt:
Code: [AUSKLAPPEN]

   LMB = MouseHit(1)
   RMB = MouseHit(2)
   MMB = MouseHit(3)


und dann immer mit
if lmb then ...
prüft.
|moonForge|
Ich bin Pokémon Meisterin seit 1998!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group