Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

moritz31

Treue Seele

  • »moritz31« ist der Autor dieses Themas

Beiträge: 259

Wohnort: Hessen

Beruf: Student

  • Private Nachricht senden

1

15.05.2011, 22:30

Bin zu blöd für nen Button

Hi Leute,
also die Überschrift stimmt nicht ganz, mein Problem ist eher, das ich einen Button habe:

Ton: ein,

und wenn man auf diesen klickt, dann soll der auf

Ton: aus

wechseln. Das klappt auch prima, nur das Problem ist jetzt ihn wieder zurück auf

Ton: ein

zu wechseln. ich bekomm es einfach nicht hin.

Hier ein Code schnippsel:

C-/C++-Quelltext

1
2
3
4
5
if(mx > 800 && my < 1100 && my > 400 && my < 470)
                                        {
                                            Sound.SetImage(SoF);
                                            
                                        }


mx und my steht für mouse x und y.
es sind die mouse koordinaten für mein mouseklick event

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

2

15.05.2011, 22:51

Schau dir mal das an:
if(mx > 800 && my < 1100 && my > 400 && my < 470)

3x my ist sicher nicht gewollt.

moritz31

Treue Seele

  • »moritz31« ist der Autor dieses Themas

Beiträge: 259

Wohnort: Hessen

Beruf: Student

  • Private Nachricht senden

3

15.05.2011, 22:54

ja es war nicht gewollt aber es behebt ja trotzdem mein problem nicht

4

15.05.2011, 23:07

Ich verstehe dein Problem nicht ganz.
Du willst also einfach einen Button, der den Ton an und aus schaltet, aber du weißt nicht wie?
Wenn ja, wie wär es mit einem bool, der auskunft gibt ob der Ton an ist oder nicht?!

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

5

16.05.2011, 10:46

Einfach wenn der Button geklickt wurde abfragen, ob der Ton an ist. Wenn ja schaltest du ihn aus. Wenn nein schaltest du ihn an.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

moritz31

Treue Seele

  • »moritz31« ist der Autor dieses Themas

Beiträge: 259

Wohnort: Hessen

Beruf: Student

  • Private Nachricht senden

6

16.05.2011, 18:15

also hab mir jetzt nach langem was überlegt und hatte auch große Hoffnung das es Funktioniert.
Doch nach dem versuchen die herbe enttäuschung, es wechselt wieder nur ein bild und nicht zurück.
Könnt ihr mir vielleicht helfen?

Hier der Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
if(mx > 800 && mx < 1100 && my > 400 && my < 470)
                                        {
                                            sf::Clock TonTime;
                                            if(Sounds == true)
                                            {
                                                Titlesound.Stop();
                                                Sound.SetImage(SoF);
                                                if(TonTime.GetElapsedTime() >= 1)
                                                {
                                                    Sounds = false;
                                                    
                                                }
                                            }
                                            if(Sounds == false)
                                            {
                                                Titlesound.Play();
                                                Sound.SetImage(SoO);
                                                if(TonTime.GetElapsedTime() >= 1)
                                                {
                                                    Sounds = true;
                                                    
                                                }
                                            }
                                            
                                        }

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

16.05.2011, 19:57

Ja, is klar. Deine IF-Abfrage ist ja auch falsch. Ich empfehle Dir mal das Schlüsselwort "else", damit klappt es dann ja vielleicht.
Genau genommen sollte der Code da übrigens keine sichtbare Änderung erzeugen.

Wozu genau fragst Du da eigentlich "TonTime.GetElapsedTime()" ab?
(Und was ist eine TonnenZeit?)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

8

16.05.2011, 21:50

Die If-Abfrage stimmt schon, aber das, was sich innerhalb dieser befindet ist einfach Quatsch. Was dieses TonTime machen soll, frage ich mich auch, denn es macht definitiv nicht das, was du willst. Lass es mal weg(Samt dem elapsedTime), dann sollte das Programm schon besser laufen ;)

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

9

16.05.2011, 22:26

Die If-Abfrage stimmt schon [...]

Quellcode

1
2
3
4
if( var )
   var = false
if( !var )
   var = true



Das ist vielleicht syntaktisch richtig, aber logisch?

@BlueCobold:
Ich glaub TonTime ist eher denglisch für TonZeit ;)

10

16.05.2011, 22:37


Das ist vielleicht syntaktisch richtig, aber logisch?

Betätigen des Schalters: Wenn der Schalter AN ist, schalte auf AUS
Wenn der Schalter AUS ist, schalte auf AN

hört sich für mich erstmal recht logisch an.

Werbeanzeige