PureBoard
https://www.purebasic.fr/german/

end beendet nicht und screen nicht bestimmbar
https://www.purebasic.fr/german/viewtopic.php?f=4&t=31630
Seite 3 von 4

Autor:  juergenkulow [ 27.09.2019 13:56 ]
Betreff des Beitrags:  Re: end beendet nicht und screen nicht bestimmbar

Hallo xdes,

habe das Programm neu aufgebaut:
Code:
 CallFunction(OpenLibrary(#PB_Any,"dwmapi.dll"),"DwmEnableComposition",0) ;Enabling and Disabling Aero interface
If InitEngine3D()
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/fonts", #PB_3DArchive_FileSystem)
  Parse3DScripts()
  InitSprite()
  InitKeyboard()
  InitMouse()
  ExamineDesktops()
  sree= OpenScreen(DesktopWidth(0),DesktopHeight(0) , 32, "Test3DText" ,#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)
  i=0
  d3_text=CreateText3D(#PB_Any,Str(i))
  Repeat
    If ExamineMouse()
      MouseX = -MouseDeltaX() * 1 * 0.05
      MouseY = -MouseDeltaY() * 1 * 0.05
    EndIf
    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) ; 4x drücken und Text wird angezeigt.
      KeyY = 0.05
    ElseIf KeyboardPushed(#PB_Key_Escape)
      Quit = #True
    Else
      KeyY = 0
    EndIf
    hoehe=2
    If IsText3D(d3_text) : FreeText3D(d3_text) :EndIf ; <<-- IsText3D eingefügt.
    i+1
     d3_text=CreateText3D(#PB_Any,Str(Engine3DStatus(#PB_Engine3D_CurrentFPS ))+" "+Str(i)+"_____")
     Text3DColor(d3_text, RGBA(255, 0 ,255, 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) ; Text ist sehr tief unten, fast 5weg.
    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   
    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)   
    UpdateTerrain(terrain)
    RenderWorld()
    FlipBuffers() 
  Until Quit = #True
  CloseScreen()
Else
  MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf

End


Gruß

Autor:  xdes [ 27.09.2019 19:33 ]
Betreff des Beitrags:  Re: end beendet nicht und screen nicht bestimmbar

vielen dank juergenkulow :allright:
auch wenn du ganz interessante Änderungen gemacht hast und dadurch schon ein bisschen was anderes geschaffenen hast (aus meiner Sicht mehr Abweichungen von den beispielen)

aber beide Programm Codes haben das gleiche Problem, sie enden never auch nicht in der letzten Zeile bei dir (mit end) was ja mein problem ist :(

an DrShrek:
>_<
da du anscheint es immer noch nicht gelesen hast zitiere ich hier noch mal den post wo ich schon die erste Verbesserung drin gemacht habe ( den sonst verwendest du grad einen aus meiner siecht missverständlichen text)
da andere ihn finden können ... z.b. #NULL , Mijikai und juergenkulow
xdes hat geschrieben:
danke emm der Fehler ist mir grad gar nicht aufgefallen

:oops:

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

Code:
 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


das Debuggen habe ich schon im ersten post geschrieben damit du auch den text findest hir noch mal ein auschnit von den ersten text
xdes hat geschrieben:
.....
da sonst alles super scheint auch beim ogre log ... und ich schon viel versucht habe zu Debuggen.... :coderselixir:
.....
man könnte noch mehr Debuggen in dem man sich jedes bit versucht in den bytes an zu gucken ... aber das würde debug technisch aus meiner Sicht kein sinn machen und dann könnte ich wahrscheinlich das Programm binär schreiben (nach der dementsprechenden bit-Programierungs Einarbeitung wobei ich glaube dann währe Assembler einfacher ...)

Autor:  DrShrek [ 27.09.2019 21:15 ]
Betreff des Beitrags:  Re: end beendet nicht und screen nicht bestimmbar

Ich glaube du redest lieber über dein Problem als es (selbst) lösen zu wollen.
Wirklich wichtig scheint dir deine Problem auch nicht zu sein.
Ich bin jetzt raus. Mach was ich dir geschrieben habe und du wirst es ohne Hilfe schaffen.

Autor:  juergenkulow [ 27.09.2019 21:54 ]
Betreff des Beitrags:  Re: end beendet nicht und screen nicht bestimmbar

Hallo xdes,

ohne die Text3D Aufrufe, wie d3_text=CreateText3D, FreeText3D, Text3DColor, FreeText3D, ScaleText3D, MoveText3D endet Dein Programm normal.
Mit dem Aufruf CreateText3D hängt sich Dein Programm aber erst am Programmende auf. Die Ursache ist mir unklar.
Alles auf Anfang, Programm neu bauen.
End am Ende kann gelöscht werden, ohne Probleme. Programm endet mit ESC.

Gruß

Autor:  #NULL [ 28.09.2019 16:24 ]
Betreff des Beitrags:  Re: end beendet nicht und screen nicht bestimmbar

Alle Rückgabewerte überprüfen, wie DrShrek bereits sagte, und gegebenenfals EnableExplicit verwenden. Du solltest in deinem Debug Fenster keine 0 sehen. Weiter kann ich nicht testen, da keine dll und auch kein 3d-archiv.
Code:
EnableExplicit
Define sree, KeyX.d, KeyY.d, MouseX.d, MouseY.d, light, terrain, map_size, max_update_per_run, x, y, d3_text
Debug 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
Debug Add3DArchive(GetCurrentDirectory()+"daten\text", #PB_3DArchive_FileSystem)
Debug Add3DArchive(GetCurrentDirectory()+"daten\fonts", #PB_3DArchive_FileSystem)
Parse3DScripts()
sree= OpenScreen(1920,1080 , 32, "a" ,#PB_Screen_NoSynchronization)
Debug sree
Debug 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)
Debug light
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")
Debug terrain
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))
Debug d3_text


CloseScreen()
End


; 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

Autor:  juergenkulow [ 29.09.2019 02:15 ]
Betreff des Beitrags:  Re: end beendet nicht und screen nicht bestimmbar

Hallo,
Add3DArchive mit falschem Verzeichnis aufrufen, hängt Programm nach Aufruf von CreateText3D bei CloseScreen, End oder Programmende auf.
Gruß

Autor:  xdes [ 29.09.2019 12:10 ]
Betreff des Beitrags:  Re: end beendet nicht und screen nicht bestimmbar

seltsam beim Debuggen ist bei mir auch das 3d Archiv ungleich null (in meinem test grade einfach nur 1) (denn wie gesagt habe alles was mir was logisch sinnvoll ist eigentlich schon versucht und auch besonders das 3 archiv (hatte anfangs nämlich Fehler drin weswegen der code da abgestürzt ist war aber eine Version bevor ich mich ans Forum gewendet habe )

hir meine Debugger werte zum scriptt von #NULL
(Beschreibungs(von mir nachträglich hinzugefügt im Forum) durch = getrennt)
callevent(was oki sein soll) =0
3d Archiv text =1
3d Archiv fonts =1
screen =1
cam =78716472
light =77663248
terrain =77663296
3d text =77663360

das problem besteht weiterhin ... da aber das problem bei euch anscheint beim 3d archiv liegt was bei euch anschient null oder 0 ist und

bei mir ist es halt ein wert ungleich null egal ob es existiert oder nicht darum versuche ich aktuell ne neu Installation... von pb

Autor:  #NULL [ 29.09.2019 12:17 ]
Betreff des Beitrags:  Re: end beendet nicht und screen nicht bestimmbar

xdes hat geschrieben:
bei mir ist es halt ein wert ungleich null egal ob es existiert oder nicht
Du erhältst keine 0 wenn du Unsinn als Pfad angibst?

Autor:  xdes [ 29.09.2019 12:33 ]
Betreff des Beitrags:  Re: end beendet nicht und screen nicht bestimmbar

@#NULL jap darum die neu Installation es ist immer 1 wie gesagt ich habe alles sinnvolle schon vor dem ersten post zu Debuggen versucht .... (und das 3d archiv war glaube ich der 2te versuch oder so ... und das obrige beispiel war ohne existierenden Ordner (nur gespeichert und alles umbenannt im Ordner was ähnlich Heist)
--------------------------------------------------------------------
@all
nach dem neue Download und Installation sind die werte immer noch gen so ... (und das Programm endet nicht egal ob mit oder ohne Archiv)
0
1
1
1
77402600
11602960
11603008
11603072


und das ohne archiv .... (egal ob mit oder ohne immer das gleiche problem und die gleichen werte ....)

kann das evtl an der Demo liegen ?
( will mir eh die Vollversion (seit längern)kaufen da aber die aktuelle Webseite mir im Umbruch scheint und ich keine Kreditkarte habe und auch nicht weis ob das alte Bestellsystem noch weiter existiert für Bestellungen aus Deutschland (Überweisungen oder Paypal)(besonders da ich Interesse an zusätzlichen CD Version habe ) warte ich grad gedrungen ab (falls es da Information zu gäb wäre das supi aber sollte wahrscheinlich ein eigens Thema unter allgemein sein werden...)

edit:
im nachhinein...
irgendwie finde ich das seltsam das es immer exakt 1 ist
besonders da das auch beim screnn ist

Autor:  juergenkulow [ 29.09.2019 13:01 ]
Betreff des Beitrags:  Re: end beendet nicht und screen nicht bestimmbar

Hallo xdes,

was steht in Deiner Datei GetCurrentDirectory()+"daten\fonts\proper-definitions.fontdef" ?
Welche Fonts sind im Verzeichnis GetCurrentDirectory()+"daten\fonts" ?
Gruß

Seite 3 von 4 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/