end beendet nicht und screen nicht bestimmbar

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
xdes
Beiträge: 57
Registriert: 13.08.2016 12:53

end beendet nicht und screen nicht bestimmbar

Beitrag von xdes »

moin,
(
Vorwort sorry aber mein deutsch ist nicht das beste ich versuche aber mein bestes
und danke schon mal im voraus für die Hilfe
)

ich habe folgende Probleme:
1 ) end beendet nicht .... ich vermut das so was wie ein de-strucktor (CloseScreen() läuft )
2 ) es wird irgendwas nach meinem code gemacht (da in der letzten Zeile der debug von einer variablen erfolgreich ausgeführt wird wonach nichts mehr kommt aber das Programm nicht beendet wird sondern nur aufhengt
3 ) CloseScreen() wird irgendwie nicht ausgeführt sondern hängt das Programm nur auf.
4 ) ScreenOutput() ist immer NULL
5 ) DisplaySprite() endet mit Das mit dem Debugger getestete Executable endete unerwartet.
6 ) da ich 2 Monitore verwende und nicht im Fenster bin endet mit Das mit dem Debugger getestete Executable endete unerwartet.
7 ) IsScreenActive() gibt immer null zurück ich vermute es ist null
8 ) sobald ich InitEngine3D( ) erfolgreich verwende stürzen alle 2D Operationen mit null ab
9 ) wenn ich stat dx opengl verwende logt die engien mit das angeblich ein shader leer ist ... auch ohne das ich irgendwas mit nen shader mache (in dx geht es)

ich habe auch schon versucht mit der lösung zum opengl probelm
(über Google gefunden ) : CallFunction(OpenLibrary(#PB_Any,"dwmapi.dll"),"DwmEnableComposition",0)
das problem zu umgehen aber irgendwie bringt das nichts)

da sonst alles super scheint auch beim ogre log ... und ich schon viel versucht habe zu Debuggen.... :coderselixir:

ich vermute das ich was ganz simples vergessen habe

darum hir die inits

CallFunction(OpenLibrary(#PB_Any,"dwmapi.dll"),"DwmEnableComposition",0)
If InitEngine3D( )=0 Or InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0 Or InitMouse() =0
MessageRequester("error", "basis geht nicht", 0)
End
EndIf

dann folgen die Archive, parsen, und opensreens (was erfolgreich ist)

danach erstelle ich erfolgreich ein licht, eine camera, terrain, und ein 3d text
so das ich in der welt herum laufen kann und mich umgucken kann und die werden updatet (UpdateTerrain(terrain)
RenderWorld()
FlipBuffers())

in einer schleife .. nach dem die schleife beendet ist sturzt es nun ab(debug "a" geht noch aber danach kommt halt kein text wo es abstürzt wenn ich end benutze klapst auch nicht ..).

vielen dank schonmal im foraus auch wenn ich evtl nicht ganz einfach geschrieben habe (soory es ist nicht mit Absicht :( )
Benutzeravatar
Bisonte
Beiträge: 2386
Registriert: 01.04.2007 20:18

Re: end beendet nicht und screen nicht bestimmbar

Beitrag von Bisonte »

Ohne einen, auf das Mindeste reduzierten Code, kann man nur raten...
PureBasic 5.72 LTS (Windows x86/x64) | Windows10 Pro x64 | Z370 Extreme4 | i7 8770k | 64GB RAM | iChill GeForce RTX 2080 Super | HAF XF Evo​​
xdes
Beiträge: 57
Registriert: 13.08.2016 12:53

Re: end beendet nicht und screen nicht bestimmbar

Beitrag von xdes »

vielen dank Bisonte emm ich dachte das ist der code schon so auf das minimalisierte ist ...

da ich nicht genau weis was da das beste ist.
hoffe ich...
das es auch oki ist wenn ich den gesamten code schreibe...
(nicht wundern ist noch nicht wirklich viel und auch nicht fertig )

Code: Alles auswählen

 CallFunction(OpenLibrary(#PB_Any,"dwmapi.dll"),"DwmEnableComposition",0)
If InitEngine3D( )=0 Or InitSprite() = 0  Or InitKeyboard() = 0 Or InitMouse() = 0 Or InitMouse() =0
  MessageRequester("error", "basis geht nicht", 0) 
  End 
EndIf 
Add3DArchive(GetCurrentDirectory()+"daten\text", #PB_3DArchive_FileSystem)
Add3DArchive(GetCurrentDirectory()+"daten\fonts", #PB_3DArchive_FileSystem)
Parse3DScripts()
sree= OpenScreen(1920,1080 , 32, "a" ,#PB_Screen_NoSynchronization)
CreateCamera(0, 0, 0, 100, 100) 
MoveCamera(0, 0, 0, 0, #PB_Absolute)
CameraBackColor(0, RGB(55, 0, 0))
KeyX.d=0.0
KeyY.d=0.0
MouseX.d=0.0
MouseY.d=0.0
light = CreateLight(#PB_Any ,RGB(190, 190, 190), 4000, 1200, 1000,#PB_Light_Directional)
SetLightColor(light, #PB_Light_SpecularColor, RGB(255*0.4, 255*0.4,255*0.4)) 
LightDirection(light ,0.55, -0.3, -0.75) 
AmbientColor(RGB(255*0.2, 255*0.2,255*0.2))
SetupTerrains(LightID(Light), 2, #PB_Terrain_NormalMapping)
terrain=CreateTerrain( #PB_Any, 65,160, 10, 1, "TerrainGroup", "dat")
AddTerrainTexture(terrain,  0, 4, "kachel.jpg","kachel.jpg")
map_size=5;
max_update_per_run=1
For x =0 To map_size
  For y=0 To map_size
    DefineTerrainTile(terrain, x, y, "", 0,0) 
  Next
Next
Dim map_array(map_size,map_size,2)
For x =0 To map_size
  For y=0 To map_size
    map_array(x,y,0)=Random(10,0);
    map_array(x,y,1)=Random(10,0);         
  Next
Next
BuildTerrain(terrain)  
d3_text=CreateText3D(#PB_Any, "FPS:"+StrF(Engine3DStatus(#PB_Engine3D_CurrentFPS ),0))
Repeat
  hoehe=2
  FreeText3D(d3_text)
  d3_text =CreateText3D(#PB_Any, "FPS:"+StrF(Engine3DStatus(#PB_Engine3D_CurrentFPS ),0))
  Text3DColor(d3_text, RGBA(255, 0, 0, 255))
  Text3DAlignment(d3_text, #PB_Text3D_HorizontallyCentered)

  ScaleText3D(d3_text, 0.5, 0.5, 0.5)
  MoveText3D(d3_text,CameraX(0),   CameraY(0) , CameraZ(0)+hoehe, #PB_Absolute)
  counter=0
  For x =0 To map_size
    For y=0 To map_size
      If max_update_per_run>counter And map_array(x,y,0)<>map_array(x,y,1)
        SetTerrainTileHeightAtPoint(terrain, y,x, 0,0, map_array(x,y,1))
        map_array(x,y,0)=map_array(x,y,1)
        counter=counter+1
      EndIf
     Next
  Next    
  If ExamineKeyboard()
    If KeyboardPushed(#PB_Key_A)
      KeyX = -0.05
    ElseIf KeyboardPushed(#PB_Key_D)
      KeyX =  0.05
    Else
      KeyX = 0.0
    EndIf
    If KeyboardPushed(#PB_Key_W)
      KeyY = -0.05
    ElseIf KeyboardPushed(#PB_Key_S)
      KeyY = 0.05
    Else
      KeyY = 0
    EndIf
  EndIf
  If ExamineMouse()
    MouseX = -MouseDeltaX() * 1 * 0.05
    MouseY = -MouseDeltaY() * 1 * 0.05
  EndIf
  MoveCamera(0, CameraX(0), TerrainHeight(0, CameraX(0), CameraZ(0)) + 2, CameraZ(0), #PB_Absolute)
  MoveCamera  (0, KeyX, 0, KeyY)
  RotateCamera(0,  MouseY, MouseX, 0, #PB_Relative) 
  If KeyboardPushed(#PB_Key_Escape)
    Quit = 1
  EndIf
  UpdateTerrain(terrain) 
  RenderWorld()
  FlipBuffers()
Until  Quit = 1

sorry das das andere anscheint nicht ausreichte :oops:


[edit1 von xdes hoffe es ist so besser zu verstehen (soory) ]
Benutzeravatar
DrShrek
Beiträge: 1959
Registriert: 08.09.2004 00:59

Re: end beendet nicht und screen nicht bestimmbar

Beitrag von DrShrek »

da ist 2 mal InitMouse()
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
xdes
Beiträge: 57
Registriert: 13.08.2016 12:53

Re: end beendet nicht und screen nicht bestimmbar

Beitrag von xdes »

danke emm der Fehler ist mir grad gar nicht aufgefallen

:oops:

leider besteht das problem weiterhin (hier noch mal der editiert Code)

Code: Alles auswählen

 CallFunction(OpenLibrary(#PB_Any,"dwmapi.dll"),"DwmEnableComposition",0)
If InitEngine3D( )=0 Or InitSprite() = 0  Or InitKeyboard() = 0 Or InitMouse() = 0 
  MessageRequester("error", "basis geht nicht", 0) 
  End 
EndIf 
Add3DArchive(GetCurrentDirectory()+"daten\text", #PB_3DArchive_FileSystem)
Add3DArchive(GetCurrentDirectory()+"daten\fonts", #PB_3DArchive_FileSystem)
Parse3DScripts()
sree= OpenScreen(1920,1080 , 32, "a" ,#PB_Screen_NoSynchronization)
CreateCamera(0, 0, 0, 100, 100) 
MoveCamera(0, 0, 0, 0, #PB_Absolute)
CameraBackColor(0, RGB(55, 0, 0))
KeyX.d=0.0
KeyY.d=0.0
MouseX.d=0.0
MouseY.d=0.0
light = CreateLight(#PB_Any ,RGB(190, 190, 190), 4000, 1200, 1000,#PB_Light_Directional)
SetLightColor(light, #PB_Light_SpecularColor, RGB(255*0.4, 255*0.4,255*0.4)) 
LightDirection(light ,0.55, -0.3, -0.75) 
AmbientColor(RGB(255*0.2, 255*0.2,255*0.2))
SetupTerrains(LightID(Light), 2, #PB_Terrain_NormalMapping)
terrain=CreateTerrain( #PB_Any, 65,160, 10, 1, "TerrainGroup", "dat")
AddTerrainTexture(terrain,  0, 4, "kachel.jpg","kachel.jpg")
map_size=5;
max_update_per_run=1
For x =0 To map_size
  For y=0 To map_size
    DefineTerrainTile(terrain, x, y, "", 0,0) 
  Next
Next
Dim map_array(map_size,map_size,2)
For x =0 To map_size
  For y=0 To map_size
    map_array(x,y,0)=Random(10,0);
    map_array(x,y,1)=Random(10,0);         
  Next
Next
BuildTerrain(terrain)  
d3_text=CreateText3D(#PB_Any, "FPS:"+StrF(Engine3DStatus(#PB_Engine3D_CurrentFPS ),0))
Repeat
  hoehe=2
  FreeText3D(d3_text)
  d3_text =CreateText3D(#PB_Any, "FPS:"+StrF(Engine3DStatus(#PB_Engine3D_CurrentFPS ),0))
  Text3DColor(d3_text, RGBA(255, 0, 0, 255))
  Text3DAlignment(d3_text, #PB_Text3D_HorizontallyCentered)

  ScaleText3D(d3_text, 0.5, 0.5, 0.5)
  MoveText3D(d3_text,CameraX(0),   CameraY(0) , CameraZ(0)+hoehe, #PB_Absolute)
  counter=0
  For x =0 To map_size
    For y=0 To map_size
      If max_update_per_run>counter And map_array(x,y,0)<>map_array(x,y,1)
        SetTerrainTileHeightAtPoint(terrain, y,x, 0,0, map_array(x,y,1))
        map_array(x,y,0)=map_array(x,y,1)
        counter=counter+1
      EndIf
     Next
  Next    
  If ExamineKeyboard()
    If KeyboardPushed(#PB_Key_A)
      KeyX = -0.05
    ElseIf KeyboardPushed(#PB_Key_D)
      KeyX =  0.05
    Else
      KeyX = 0.0
    EndIf
    If KeyboardPushed(#PB_Key_W)
      KeyY = -0.05
    ElseIf KeyboardPushed(#PB_Key_S)
      KeyY = 0.05
    Else
      KeyY = 0
    EndIf
  EndIf
  If ExamineMouse()
    MouseX = -MouseDeltaX() * 1 * 0.05
    MouseY = -MouseDeltaY() * 1 * 0.05
  EndIf
  MoveCamera(0, CameraX(0), TerrainHeight(0, CameraX(0), CameraZ(0)) + 2, CameraZ(0), #PB_Absolute)
  MoveCamera  (0, KeyX, 0, KeyY)
  RotateCamera(0,  MouseY, MouseX, 0, #PB_Relative) 
  If KeyboardPushed(#PB_Key_Escape)
    Quit = 1
  EndIf
  UpdateTerrain(terrain) 
  RenderWorld()
  FlipBuffers()
Until  Quit = 1

xdes
Beiträge: 57
Registriert: 13.08.2016 12:53

Re: end beendet nicht und screen nicht bestimmbar

Beitrag von xdes »

@Mijikai vielen danke aber da ist eigentlich auch kein Window drin sondern ein Screen (wenn ich alleine WaitWindowEvent() verwende stützt es ab. denn ich habe kein window und das bestätigt die Meldung vom Debugger mit: [ERROR] Mindestens ein Fenster sollte geöffnet sein, um diesen Befehl zu verwenden.)



status ungelöst :(

ist denn der Fehler nur bei mir drin ?(läuft das nur bei mir nicht)

[edit 1 frage ergänzt]
Zuletzt geändert von xdes am 25.08.2019 12:13, insgesamt 1-mal geändert.
Benutzeravatar
#NULL
Beiträge: 2220
Registriert: 20.04.2006 09:50

Re: end beendet nicht und screen nicht bestimmbar

Beitrag von #NULL »

You don't need to explicitly process events if you use a fullscreen and no window. But you might need a ClearScreen() after FlipBuffers() or at the beginning of your main loop to actually see something, at least here on Linux. I think FlipBuffers() (and ClearScreen()) do some event processing in the background.
And ExamineMouse() and ExamineKeyboard() don't have a return value. Call them every time and don't If-branch on the return value.
my pb stuff..
Bild..jedenfalls war das mal so.
xdes
Beiträge: 57
Registriert: 13.08.2016 12:53

Re: end beendet nicht und screen nicht bestimmbar

Beitrag von xdes »

vielen dank an #NULL
unter Windows mit dx scheint es auch gut ohne ClearScreen() zu laufen (opengl malt so oder so irgendwas seltsames.. (ich vermute da sind Koordinaten
vertauscht)

nun habe ich es einfach hinzugefügt da ich ja kein Darstellung Probleme habe sonder ein ende und ein seren Identifikation problem habe...

->das IF bei den examine habe ich nur zu übersiecht drin gehabt

der code lautet nun

leider ist der Fehler damit nicht behoben
----------------------------------------
en -> translatet with googel
---------------------------------------
Thanks a lot for #NULL
Windows with dx it seems synonymous well without ClearScreen () to run (opengl paint or something strange ..) (I suspect there are coordinates
reversed)

Now I just added it because I have no presentation problems but have a final and a serious identification problem ...

-> The IF in the examine, I had only too insignificant in it

the code is now

Unfortunately, the error is not resolved

code

Code: Alles auswählen

 CallFunction(OpenLibrary(#PB_Any,"dwmapi.dll"),"DwmEnableComposition",0)
If InitEngine3D( )=0 Or InitSprite() = 0  Or InitKeyboard() = 0 Or InitMouse() = 0 
  MessageRequester("error", "basis geht nicht", 0) 
  End 
EndIf 
Add3DArchive(GetCurrentDirectory()+"daten\text", #PB_3DArchive_FileSystem)
Add3DArchive(GetCurrentDirectory()+"daten\fonts", #PB_3DArchive_FileSystem)
Parse3DScripts()
sree= OpenScreen(1920,1080 , 32, "a" ,#PB_Screen_NoSynchronization)
CreateCamera(0, 0, 0, 100, 100) 
MoveCamera(0, 0, 0, 0, #PB_Absolute)
CameraBackColor(0, RGB(55, 0, 0))
KeyX.d=0.0
KeyY.d=0.0
MouseX.d=0.0
MouseY.d=0.0
light = CreateLight(#PB_Any ,RGB(190, 190, 190), 4000, 1200, 1000,#PB_Light_Directional)
SetLightColor(light, #PB_Light_SpecularColor, RGB(255*0.4, 255*0.4,255*0.4)) 
LightDirection(light ,0.55, -0.3, -0.75) 
AmbientColor(RGB(255*0.2, 255*0.2,255*0.2))
SetupTerrains(LightID(Light), 2, #PB_Terrain_NormalMapping)
terrain=CreateTerrain( #PB_Any, 65,160, 10, 1, "TerrainGroup", "dat")
AddTerrainTexture(terrain,  0, 4, "kachel.jpg","kachel.jpg")
map_size=5;
max_update_per_run=1
For x =0 To map_size
  For y=0 To map_size
    DefineTerrainTile(terrain, x, y, "", 0,0) 
  Next
Next
Dim map_array(map_size,map_size,2)
For x =0 To map_size
  For y=0 To map_size
    map_array(x,y,0)=Random(10,0);
    map_array(x,y,1)=Random(10,0);         
  Next
Next
BuildTerrain(terrain)  
d3_text=CreateText3D(#PB_Any, "FPS:"+StrF(Engine3DStatus(#PB_Engine3D_CurrentFPS ),0))
Repeat
  hoehe=2
  FreeText3D(d3_text)
  d3_text =CreateText3D(#PB_Any, "FPS:"+StrF(Engine3DStatus(#PB_Engine3D_CurrentFPS ),0))
  Text3DColor(d3_text, RGBA(255, 0, 0, 255))
  Text3DAlignment(d3_text, #PB_Text3D_HorizontallyCentered)

  ScaleText3D(d3_text, 0.5, 0.5, 0.5)
  MoveText3D(d3_text,CameraX(0),   CameraY(0) , CameraZ(0)+hoehe, #PB_Absolute)
  counter=0
  For x =0 To map_size
    For y=0 To map_size
      If max_update_per_run>counter And map_array(x,y,0)<>map_array(x,y,1)
        SetTerrainTileHeightAtPoint(terrain, y,x, 0,0, map_array(x,y,1))
        map_array(x,y,0)=map_array(x,y,1)
        counter=counter+1
      EndIf
     Next
  Next    
  ExamineKeyboard()
  If KeyboardPushed(#PB_Key_A)
    KeyX = -0.05
  ElseIf KeyboardPushed(#PB_Key_D)
    KeyX =  0.05
  Else
    KeyX = 0.0
  EndIf
  If KeyboardPushed(#PB_Key_W)
    KeyY = -0.05
  ElseIf KeyboardPushed(#PB_Key_S)
    KeyY = 0.05
  Else
    KeyY = 0
  EndIf
  
  ExamineMouse()
  MouseX = -MouseDeltaX() * 1 * 0.05
  MouseY = -MouseDeltaY() * 1 * 0.05
  MoveCamera(0, CameraX(0), TerrainHeight(0, CameraX(0), CameraZ(0)) + 2, CameraZ(0), #PB_Absolute)
  MoveCamera  (0, KeyX, 0, KeyY)
  RotateCamera(0,  MouseY, MouseX, 0, #PB_Relative) 
  If KeyboardPushed(#PB_Key_Escape)
    Quit = 1
  EndIf
  UpdateTerrain(terrain) 
  RenderWorld()
  FlipBuffers()
  ClearScreen(RGB(0,0,0))
Until  Quit = 1


[edit 1 code hinzugefügt]
Benutzeravatar
#NULL
Beiträge: 2220
Registriert: 20.04.2006 09:50

Re: end beendet nicht und screen nicht bestimmbar

Beitrag von #NULL »

Entschuldigung, das Englisch war ein Versehen, Ich kann deutsch.
my pb stuff..
Bild..jedenfalls war das mal so.
Antworten