Bild zum Button machen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Raiden93

Betreff: Bild zum Button machen

BeitragDo, Aug 26, 2010 23:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich habe das Problem das ich ein Button per Loadimage geladen habe aber nun nicht weis wie ich ihn wirklich zum Button mache.Ich hoffe ihr könnt mir weiter helfen.
Code: [AUSKLAPPEN]
Upgrade_Gold = LoadImage("GFX/Button.bmp")

    DrawImage Upgrade_Gold,25,55

    If MouseDown(1)  ;<-----------Hier müsste and und ne collision hin das ich nur drücken kann wenn der Zeiger auch drauf ist
       Gold = GOld+100
    EndIf

Hubsi

BeitragFr, Aug 27, 2010 0:33
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
If MouseHit(1) ; mousedown wird Dir hier Probleme machen
If MouseX()>button_x And MouseX()<button_x+button_breite
If MouseY()... selber schreiben :D
; Deine Aktion die passieren soll
EndIf
EndIf
EndIf
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Raiden93

BeitragFr, Aug 27, 2010 0:39
Antworten mit Zitat
Benutzer-Profile anzeigen
okay dann werde ich mich da mal gleich dran versuchen aber vorher ein wenig WoW zogge Smile

EDIT:
Mit vielen rum versuchen hab ich es dann doch hin gekriegt:
Code: [AUSKLAPPEN]
    If MouseHit(1)
      If MouseX()>25 And MouseX()<139
        If MouseY()>55 And MouseY()<82
          Gold=Gold+1000
        EndIf
      EndIf

M0rgenstern

BeitragFr, Aug 27, 2010 6:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mousehit wird dir in dieser form auch nicht helfen. Besser ists so:
BlitzBasic: [AUSKLAPPEN]
Local mousehitright% = MouseHit(1)

If mousehitright Then...

Hubsi

BeitragFr, Aug 27, 2010 8:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Was ist daran jetzt der Unterschied?
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Thunder

BeitragFr, Aug 27, 2010 9:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn man MouseHit öfter abfragt, bekommt man nur beim ersten Mal den Klickwert und danach nur noch 0. Wenn man die Abfrage abspeichert, kann man öfter abfragen, ob die Maustaste gedrückt wurde.

@M0rgenstern: Das ist die linke Maustaste (für Rechtshänder zumindest).

mfg Thunder
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

Hubsi

BeitragFr, Aug 27, 2010 9:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Schon klar, aber das Konstrukt erlaubt ja jederzeit eine Erweiterung.
BlitzBasic: [AUSKLAPPEN]
If MouseHit(1) Then
If irgendwas Then machdieses()
If was_anderes Then machjenes()
; bla blubb
EndIf
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Raiden93

BeitragFr, Aug 27, 2010 9:48
Antworten mit Zitat
Benutzer-Profile anzeigen
klar mir hat es doch geholfen und habe dabei kein Problem 0o ich hab mit den Koordinaten ein Viereck gebaut was halt den Button überdeckt und so mein Button klick bildet.

M0rgenstern

BeitragFr, Aug 27, 2010 13:33
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Thunder: Jop, sorry, ist mir gar nicht aufgefallen. Man achte bitte auf die Uhrzeit^^

Zitat:
Schon klar, aber das Konstrukt erlaubt ja jederzeit eine Erweiterung.
BlitzBasic: [AUSKLAPPEN] [EINKLAPPEN]

If MouseHit(1) Then
If irgendwas Then machdieses()
If was_anderes Then machjenes()
; bla blubb
EndIf


Klar, kannst du, aber je nachdem was du machst kannst du das so nicht aufbauen.
Beispiel:
1. Du willst das in ne Funktion übergeben.
2. Du hast ne Select Case Abfrage irgendwo dazwischen, also:

BlitzBasic: [AUSKLAPPEN]
Select iMyVar
Case 1
If imousehitleft Then
;Tu was
End If
Case 2
If imousehitleft Then
;Tu was anderes
End If

End Select


Lg, M0rgenstern

Ana

BeitragFr, Aug 27, 2010 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde ein Images laden, das nur einen Pixel groß ist und es dann mit imagesoverlap überprüfen
BlitzBasic: [AUSKLAPPEN]

mousehit1 = MouseHit(1)

If mousehit1 And ImagesOverlap(Upgrade_Gold,25,55,pixel,MouseX(),MouseY()) Then ..

BladeRunner

Moderator

BeitragFr, Aug 27, 2010 16:03
Antworten mit Zitat
Benutzer-Profile anzeigen
...was jedoch sehr ineffizient ist, zumal die Lösung echt mit 2 Bereichsprüfungen sehr einfach ist.
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

Raiden93

BeitragFr, Aug 27, 2010 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich finde es besser wie ich es jetzt gemacht habe weil ich mir bildlich vorstellen kann was ich da überhaupt gemacht habe Very Happy

Ana

BeitragFr, Aug 27, 2010 16:39
Antworten mit Zitat
Benutzer-Profile anzeigen
@ BladeRunner, dass stimmt natürlich, aber es ist bequem, übersichtlich und unspezifisch falls man die Bilder ändern möchte und sie eventuell eine andere größe haben, oder man nicht genau weiß wie groß das ganze ist.

Ist der unterschied zu Imageswidth ect. da den groß? Weil für einen pixel sollten die Befehle ja schnell gehen und vermutlich ist imagesoverlap auch optimiert oder nicht?

Xeres

Moderator

BeitragFr, Aug 27, 2010 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Man verwendet einfach eine Funktion die ein Bild als Parameter nimmt, es einzeichnet, und prüft, ob der Mauszeiger drauf ist (Koordinaten&Größe des Bildes, ggf. Hovereffekt) und bei einem Klick True zurück gibt.
Das schreibt man einmal und kann beliebig oft, beliebig viele Buttons machen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group