Seite 1 von 1

repeat - until lässt sich nicht abbrechen

Verfasst: 24.05.2006 12:30
von cofter
Hi,

ich habe folgendes Problem.
Mein Programm lässt sich einfach nicht mit Escape beenden.
Um es zu beenden muss ich den Prozess im TaskManager killen.
Könnte mir jemand sagen warum das so ist?

Ich arbeite mit PureBasic V3.94

Anbei noch der Code.

mfg
Cofter

Code: Alles auswählen


;---------------------
; Constanten
;---------------------

#window = 001

#screen_w = 800
#screen_h = 600
;---------------------
; Constanten ende
;---------------------



If InitEngine3D()
   ;  MessageRequester("3D Engine","Die Engine wurde gestartet!")
    
    engine.b = 1
Else
    MessageRequester("3D Engine","Die Engine konnte nicht gestartet werden!")
    
    engine.b = 0
    End
EndIf

If engine = 1
  ; MessageRequester("3D Engine","Es hat geklappt und geht weiter im code")
  
  in_db = InitDatabase()
  db_examine = ExamineDatabaseDrivers()
  db_driver = NextDatabaseDriver()
  db_descript$ = DatabaseDriverDescription()
  db_driver_name$ = DatabaseDriverName() 
  
  If db_examine = 0
    ; MessageRequester("DB Driver","Fehler im odbc bereich!")
    End
  Else
    ; MessageRequester("Db Driver","Die Treiber: " +db_descript$) 
    
    db_go.b = 1
  EndIf
  
Else
  MessageRequester("3D Engine","Es ist ein Fehler aufgetreten")
  End
EndIf

If engine = 1 And db_go = 1
  OpenConsole()
  PrintN("Engine gestartet...")
  Delay(1000)
  PrintN("Datenbanktreiber gefunden...")
  Delay(1500)
  PrintN("Initialisiere System...")
  Delay(1000)
  window.b = 1
  Delay(2000)
EndIf

  
  
If window = 1

    InitSprite()
    OpenScreen(#screen_w,#screen_h,32,"Solania")
    InitKeyboard()
    ExamineKeyboard()
    
    
    CreateCamera(0, 0, 0, 100, 100)
    
  Repeat 
  fps = Engine3DFrameRate(#PB_Engine3D_Current)


  RenderWorld()
  Until KeyboardPushed(#PB_Key_Escape)
EndIf

Verfasst: 24.05.2006 12:36
von DrShrek
Anfängerfrage!
(Und nix allgemeines)

Sieh Dir mal die Hilfe zu KeyboardPushed() genauer an.
Besonders das Beispiel (Wo steht da der ExamineKeyboard() Befehl?)
Genau! Das ist die Lösung.

Verfasst: 24.05.2006 12:42
von cofter
Sorry das ich im Allgemeinem Forum gepostet habe.
Habe mich wohl verklickt.

Danke für den Hinweis.
Hab nicht bedacht das ExamineKeyboard() in die repeat-Schleife muss.:oops:


mfg
Cofter