Seite 1 von 1

Kann Mesh nicht laden

Verfasst: 30.06.2005 18:01
von unix
OK ich habe folgendes Problem ich habe den Beispielcode von der Hilfe zu Material geöffntet und wollte testen.

Nun ich habe ich wenn ich starten will einen Fehler:
Windows meldet:
PureBasic2920250.exe hat ein Problem festgestellt und muss beendet werden.
Da ich mir denken kann das ihr diesen "Fehler" kennt, brauch ich ihn nicht weiter beschreiben.

Mein Code:

Code: Alles auswählen

#CameraSpeed = 10

IncludeFile "D:\PureBasic\Screen3DRequester.pb"

DefType.f KeyX, KeyY, MouseX, MouseY

If InitEngine3D()

  Add3DArchive("Data\", #PB_3DArchive_FileSystem)
  
  InitSprite()
  InitKeyboard()
  InitMouse()
  
  If Screen3DRequester()
    
    AmbientColor(RGB(255,255,255))
    
    LoadMesh   (0, "D:\PureBasic\Robot.mesh")
    
    CreateMaterial(0, LoadTexture(0, "D:\PureBasic\r2skin.png"))

    CreateMaterial(1, LoadTexture(1, "D:\PureBasic\clouds.png"))
    MaterialBlendingMode(1, 3)  ; Alphablending for this texture
    
    CreateEntity  (0, MeshID(0), MaterialID(1))
    CreateEntity  (1, MeshID(0), MaterialID(0))
 
    MoveEntity(1, 100, 0, 0)
    
    CreateCamera(0, 0, 0, 100, 100)
    CameraLocate(0,0,0,100)
      
    Repeat
      Screen3DEvents()
     
      ClearScreen(0, 0, 0)
            
      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
      
      RotateEntity(0, 1, 0, 0)
      RotateEntity(1, 0.5, 0, 0)
      
      RotateCamera(0, MouseX, MouseY, RollZ)
      MoveCamera  (0, KeyX, 0, KeyY)
      
      RenderWorld()
      Screen3DStats()
      FlipBuffers()
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
  EndIf
    
Else
  MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
  
End
; ExecutableFormat=Windows
; CursorPosition=44
; FirstLine=1
; EOF
Wäre schön wenn ich helfen könnt.

Verfasst: 30.06.2005 20:58
von Green Snake
hmmm..komisch.
wenn die pfäde stimmen, dann sollte es eigentlich funzen.
werds aber nochmal genauer unter die lupe nehmen.
was sagt der debugger genau?

Verfasst: 30.06.2005 21:23
von Lukas-P
Also bei mir funktioniert der Code einwandfrei!
Bei dir im Code steht cload.png und r2skin.png normal haben die beiden Dateien die Dateiendung JPG, also kann es eind as du die Dateien mit Paint "konvertiert" hast, dann kann es daran liegen verwende mal die original Dateien!

Verfasst: 30.06.2005 23:53
von Batze
Vielleicht das?

Code: Alles auswählen

Add3DArchive("Data\", #PB_3DArchive_FileSystem)
das muss wenn du absolute Pfadangaben verwedest natürlich

Code: Alles auswählen

Add3DArchive("D:\PureBasic\Data\", #PB_3DArchive_FileSystem)
Dann kannst du dir auch die restlichen Pfadangaben sparen. (ausser den 3DRequester.pb, der muss so bleiben)

Tip: kopier doch alles in einen Ordner