If Then Else

Previous topic - Next topic

Vampire

warum funzt diese simple kleine routine nicht?
der sound wird nicht gespielt, alles andere klappt.
der compiler beklagt sich nicht.
ich dreh noch durch...:(

Code (glbasic) Select
LOADFONT "Digital Readout.bmp",1
LOADSOUND "motor.wav",0, 1

SETSCREEN 640, 480, 1
SETFONT 1

PRINT "Motor = F1", 100, 100
GOSUB motor
SHOWSCREEN
MOUSEWAIT
// ------------------------------------------------------------- //
// -=#  MOTOR  #=-
// ------------------------------------------------------------- //
SUB motor:

IF KEY (59) = 1
PLAYSOUND (0, 0, 1)
ENDIF
RETURN

ENDSUB // MOTOR

Kitty Hello

Weil Du nicht so schnell F1 drücken kannst, wie er schon im MOUSEWAIT hängt ;)

Vampire

dann muss ich also ne schleife bauen, damit die abfrage immer wieder durchlaufen wird?

BumbleBee

Code (glbasic) Select
WHILE TRUE
 PRINT "Motor = F1", 100, 100
 GOSUB motor
 SHOWSCREEN
WEND

  und hier dann die SUB :)
oder mit GOTO (Wird aber sehr unübersichtlich)

Cheers
The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit

Vampire

danke dir, aber das habe ich natürlich schon versucht und hatte cpu auslastung von 100%.
nusste nen neustart machen, um aus der schleife rauszukommen.
weiss nich, sowas ist mir in den letzten 20 jahren nicht mehr passiert...

Vampire

jetzt klappt es, ich muss noch irgendwas anderes mit in der schleife gehabt haben.
keine ahnung, bin sowieso fertig für heute :D

danke dir nochmal, bumblebee ;)

BumbleBee

Gern geschehen ;)
Quote from: Vampireich muss noch irgendwas anderes mit in der schleife gehabt haben
Passiert mir ständig, dass ich irgendwo was übersehe oder vergesse.
Mit GOTO geht's ja auch. Aber das weißt du ja eh selber.
Code (glbasic) Select
motor:
 PRINT "Motor = F1", 100, 100
  IF KEY (59) = 1
   PLAYSOUND (0, 0, 1)
  ENDIF
 SHOWSCREEN
GOTO motor
So wird das Programm ja auch immer wieder abgearbeitet. Wie bei 'ner Schleife.

Setz aber jetzt mal (versehentlich) das GOTO vor SHOWSCREEN. :D

 -> Strg-Alt-Entf :D

Mir ist natürlich klar, dass das falsch wäre, weil SHOWSCREEN ja dann nie ausgeführt
wird und man ja nichts sehen würde.
 Ich sag das deswegen, weil das  manchmal halt so Kleinigkeiten sind, wo man Stundenlang nach dem Fehler sucht. Das Programm hängt sich auf und man fragt sich warum. Bloß weil man was vertauscht hat.
Bei diesen paar Zeilen geht's ja noch. Aber man hat ja normalerweise mehr.;)

Cheers
The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit

Vampire

du sagst es, der teufel  steckt ,wie immer, im detail.
der von mir gepostete code war noch nichtmal das "original". er beschreibt nur das problem, das ich hatte. der originalcode war völlig unübersichtlich geworden durch auskommentierte zeilen mit denen ich experimentiert hatte usw...
zum schluß war ich völlig konfus :D

das schlimmste was mir mal passiert ist, war das nicht beachten der groß/klein schreibung einer variablen.
ich deklariere meine variablen bevor ich sie benutze und hatte eine groß geschrieben ( entgegen meiner gewohntheit), als ich sie dann einsetzen wollte klappte es nicht.
es hat bestimmt 2 stunden gedauert bis mir das aufgefallen ist...
ich war fix und fertig :D

Kitty Hello

Wg. Gorß-Kleinschreibung: Schau mal was der Compiler ausgibt, besonders wenn Du auf DEBUG umstellst. Dann sagt er dir sachen wie:
Code (glbasic) Select
warning : implicitly created GLOBAL  : xyzDamit weißt Du: Hier macht er eine GLOBAL Variable, ohne dass Du sie vorher mit GLOBAL oder LOCAL angelegt hast. Das sind oft so vertippsler.

Vampire

danke gernot, genauso sowas passiert mir oft... :)