Seite 1 von 1

Invalid Memory Access bei Terrain

Verfasst: 02.04.2006 15:23
von Ground0

Code: Alles auswählen

;Test 2
;Figuren auf Höhenterrains.
;Eine Simple bon oben anch unen Fallende Physik engine

#CameraSpeed = 5


If InitEngine3D() And InitKeyboard() And InitMouse() And InitNetwork() And InitSound() And InitSprite() And InitSprite3D()
  Initialisierung=1
  MessageRequester("Initialisierung Beendet", "Mysteri-House wird gestartet...", #PB_MessageRequester_Ok )
 
Else
  MessageRequester("Fehler bei der Initialisierung", "Mysteri-House kann nicht gestartet werden", #PB_MessageRequester_Ok )
  End
EndIf

If OpenScreen(1280,800,32, "Mysteri-House")
    Add3DArchive("Terrain\", #PB_3DArchive_FileSystem )
    AmbientColor(RGB(255,255,255))
    
    CreateMaterial  (0, LoadTexture(1, "terrain_texture.jpg"))
    ;AddMaterialLayer(0, LoadTexture(1, "terrain_detil.jpg"), 1)
    
    CreateTerrain("terrain.png", MaterialID(0), 1, 1, 1)

    CreateCamera(0, 0, 0, 100, 100)
    CameraLocate(0, 128, 25, 128)
    
    Repeat

      If ExamineKeyboard()
        
        If KeyboardPushed(#PB_Key_Left)
          KeyX = -#CameraSpeed 
        ElseIf KeyboardPushed(#PB_Key_Right)
          KeyX = #CameraSpeed 
        Else
          KeyX = 0
        EndIf
                  
        If KeyboardPushed(#PB_Key_Up)
          KeyY = -#CameraSpeed 
        ElseIf KeyboardPushed(#PB_Key_Down)
          KeyY = #CameraSpeed 
        Else
          KeyY = 0
        EndIf

      EndIf
      
      If ExamineMouse()
        MouseX = -(MouseDeltaX()/10)*#CameraSpeed/2
        MouseY = -(MouseDeltaY()/10)*#CameraSpeed/2
      EndIf
      
      Height.f = TerrainHeight(CameraX(0), CameraZ(0))
      
      RotateCamera(0, MouseX, MouseY, RollZ)
      MoveCamera  (0, KeyX, -CameraY(0)+Height+8, KeyY)
            
      RenderWorld()
;      Screen3DStats()
      FlipBuffers()
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Vileicht sieht man ja die Kommentare am anfang um was es geht hier...
Physik Figurund co. sind noch nicht da.

Also wenn ich das File ausführe mit PureBasic Debuger kommt in Zeile 22 Befehl CreateTerrain ein Invalid Memory Access benutzte ich einfach das Exe File fängt er an und er kommt da mit einem Fehler an MS senden wegen der engine3d.dll die abgestürtzt ist.

Was kann das sein?

Achja is PB 4 Beta 8

Gruss Ground0

Verfasst: 03.04.2006 01:07
von spacewalker
Jo es ist scheinbar notwendig, dass auch detailmap geladen wird, ohne geht es nicht. Abgesehen davon, dass die zeile bei dir auskommentiert war, ist dir ein tippfehler passiert - terrain_detail.jpg, nicht terrain_detil.jpg ... Sonst klappt es bei mir wie aus dem buch.

Verfasst: 03.04.2006 17:39
von Ground0
Danke das wahr wircklich das Problem, aber wie erzeuge ich nun eine solche Detailmap?

Weil ich finde in Geoscape3D nur eine Exportfunktion für die Textur und die Höhenmap...
Und einfach die Höhenmap als Detailmap nochmals verwenden haut nicht hin da gibts diesen absturz dan auch...

Gruss

Verfasst: 03.04.2006 19:56
von bobobo
Nimm ein weißes JPG in der Größe der Heightmap als Detail

Verfasst: 03.04.2006 23:53
von Ground0
Danke Danke hat jetzt endlich funktioniert weis zwar noch immer nicht genau wo es gehangen hat als ich 3 files Hatte schlussendlich hatte ich alle einfach mit dem Paint Shop Pro 7AE Bearbeitet und dan nochmals gespeichert und es ging... Paint, Adobe Photoshop Elements und co wolten irgendwie einfach nicht...

Danke nochmals und cu.

Verfasst: 04.04.2006 00:15
von Green Snake
hatte damals auch das problem.
die datei (PNG) musste mit 32 bit farb-informationen gespeichert sein...Paint schafft aber nur 24 :|