Button sound nur einmal spielen
Übersicht

![]() |
AnaBetreff: Button sound nur einmal spielen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Heyho,
ich versuche gerade mal einen allgemeinen und auch noch ganz hübschen button für meine anwendung zu schreiben, er soll ein klick von sich geben wenn die mause drauf ist ein anderes klick wenn sie geklickt wird, das bild ändern und true zurückgeben wenn er geklickt wurde, das geht auch alles solange es nur einen button gibt, bei mehreren geht meine art festzustellen das der button schon mal geklickt hat, wenn die maus drüber war nicht mehr auf. ich dachte mir das ganze so: Code: [AUSKLAPPEN] Global SoundBedingung = True Function Button(image1,image2,image3,x,y) ;Bild,Hintergrund nicht maus drauf,Hintergrund mausdrauf,x,y SoundBedingung2 = True re = False If ImagesOverlap (pixel,MouseX(),MouseY(),image1,x,y) Then If SoundBedingung = True And SoundBedingung2 = True Then system = PlaySound (klick2) SoundBedingung = False EndIf Soundbedingung2 = False DrawImage image3,x,y Color 255,255,0 Rect x,y,ImageWidth (image1),ImageHeight (image1),0 Color 255,255,255 If MouseDown(1) And lastclick + mausverzoegerung < MilliSecs() Then lastclick = MilliSecs() re = True If MilliSecs() = lastclick Then system = PlaySound (Sound_klick) EndIf Else DrawImage image2,x,y EndIf DrawImage image1,x,y If SoundBedingung2 = True Then SoundBedingung = True Text 100,100,SoundBedingung +" / " + SoundBedingung2 Return re End Function Der gedanke ist halt das Soundbedinung feststellt ob schon das klickgeräusch gespielt wurde und soundbedinung2 schaut ob die images sich überscheiden, davor hab das für eine dynamische struktur an knöpfen verwendet mit einer for schleife da ging das gut aber bei einzelnen ist das halt doof weil wenn 2 da sind ja einer immer nicht berührt wird und so die globale immer true gesetzt wird hat wer ne gute idee wie man das besser lösen kann? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum packst du das alles nicht in einen Type? Dann kann man auch den Status mehrerer Knöpfe verarbeiten. | ||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Ana |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja wahrscheinlich das einfachst, eigentlich wollte ich es anders lösen um sich den aufwand zu sparen das alles dann nochmal durchlaufend zulassen und zu überprüfen. | ||
Omenaton_2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da reicht auch ein DIM.
Weise einfach allen deinen Buttons eine ID-Nummer zu. Ok = 1, Cancel = 2, Close = 3, Continue = 4, etc. Dann definierst du vorne 2 DIMs : Dim SoundBedingung_A(4) Dim SoundBedingung_B(4) Dann, If SoundBedingung_A(x) = True And SoundBedingung_B(x) = True Then abspielen EndIf Du könntest das auch einfach in eine For Nest Schleife legen und alle Buttons durchgehen, wobei dann X die Nummerierung in For Next ist. ; X ist die ID-Nummer des aktuell behandelten Buttons. Ich finde das schön kurz und übersichtlich und leicht erweiterbar. Außerdem vergiß nicht, daß du auch die Grafiken in DIMs packen kannst, dann kann alles mit einer ID-Nummer angesprochen werden. Allerdings wenn du viele verschiedene Sachen hast, dann lohnt es sich schon einen Type machen. |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dem kann ich nicht so ganz zustimmen.
Am Anfang scheinen Dim-Arrays zwar leichter zu sein, bei Types verringert man aber den nötigen Aufwand der Programmierung und kapselt auch ein bischen besser. Bei GUI-Elementen weiß man nicht immer von Anfang an, wie viele man braucht, weshalb es besser ist, Types zu nutzen. Dann muss man nämlich nicht wegen dem Hinzufügen eines Buttons die Arraygröße kontrollieren. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group