Seite 2 von 2

Re: Erstes 3D-Game, aber welche Engine?

Verfasst: 20.12.2009 14:42
von Codusa
DarkDragon hat geschrieben:
Vermilion hat geschrieben:
Ok... Ich probier n3xt-d mal aus, weil ich grad sowiso ein bissl genervt von Ogre bin(LoadWorld).
LoadWorld ist schon seit geraumer Zeit bzw. seit einigen PureBasic Versionen nur noch eine Leiche, d.h. hat keine Funktion mehr. Ist genauso wie mit TextureOutput() derzeit, ist auch nutzlos.
LoadWorld ist seit einiger Zeit wieder dabei und funktioniert wunderbar. Probiers mal mit ET Wolfenstein maps.
Hab mir ET Map Ae_Sniper_Challenge runtergeladen und folgenden code benutzt:

Code: Alles auswählen

#CameraSpeed = 10

If InitEngine3D()  
  InitSprite()
  InitKeyboard()
  InitMouse()
  OpenScreen(1680,1050,32,"Demons")

    AmbientColor(RGB(0,200,0))  
     
    CreateCamera(0, 0, 0, 100, 100)
    CameraLocate(0,0,1000,0)  
    CameraBackColor(0,RGB(0,2,200))

    Add3DArchive("DemonsPics\ae_sniper_challenge.pk3",#PB_3DArchive_Zip)
    LoadWorld("maps\ae_sniper_challenge.bsp")
    SkyDome("Wolken02.jpg",-10)
    Repeat

      
      ;ClearScreen(RGB(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_Space)
          CameraLocate(0,0,1000,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()/3)*#CameraSpeed/2
        MouseY = -(MouseDeltaY()/3)*#CameraSpeed/2
      EndIf
      
      
      RotateCamera(0, MouseY, MouseX, RollZ, #PB_Relative)
      MoveCamera  (0, KeyX, 0, KeyY) ; ################IMA####################


      
      RenderWorld()

      FlipBuffers()
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1

    
Else
  MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
  
End
LoadWorld liefert 1 zurück
Da bekomme ich dann einen IMA bei MoveCamera...

Re: Erstes 3D-Game, aber welche Engine?

Verfasst: 24.12.2009 09:24
von Hoessi666
DarkDragon hat geschrieben:
Vermilion hat geschrieben:
Ok... Ich probier n3xt-d mal aus, weil ich grad sowiso ein bissl genervt von Ogre bin(LoadWorld).
LoadWorld ist schon seit geraumer Zeit bzw. seit einigen PureBasic Versionen nur noch eine Leiche, d.h. hat keine Funktion mehr. Ist genauso wie mit TextureOutput() derzeit, ist auch nutzlos.
LoadWorld ist seit einiger Zeit wieder dabei und funktioniert wunderbar. Probiers mal mit ET Wolfenstein maps.
Als LoadWorld wieder reingenommen wurde, habe ich´s mal direkt mit einer Q3-Map genutzt. Problem war, dass die Ogre-Entities und die Q3-Map ein anderes Koordinatensystem nutzten.
So mußte man eine Entity an der x-Achse verschieben um die y-Position im Level zu ändern...Die Kamera lief dagegen einwandfrei, wenn ichs recht in Erinnerung habe...
War letzten Endes so nervig, dass ichs gelassen habe...

Wurde da schon was gefixed?

Re: Erstes 3D-Game, aber welche Engine?

Verfasst: 24.12.2009 09:44
von DarkDragon
Hallo,

Da ist ein Beispiel drin das funktioniert (Eine Map muss man natürlich selbst suchen):
http://www.purebasic.com/Ogre1.6.zip
Hoessi666 hat geschrieben:Als LoadWorld wieder reingenommen wurde, habe ich´s mal direkt mit einer Q3-Map genutzt. Problem war, dass die Ogre-Entities und die Q3-Map ein anderes Koordinatensystem nutzten.
So mußte man eine Entity an der x-Achse verschieben um die y-Position im Level zu ändern...Die Kamera lief dagegen einwandfrei, wenn ichs recht in Erinnerung habe...
War letzten Endes so nervig, dass ichs gelassen habe...

Wurde da schon was gefixed?
Darüber kann man sich jetzt streiten ob das ein Bug ist. Das ist lediglich eine Komponentenvertauschung, mehr nicht. Wenn du das nicht willst musst du halt deine Maps drehen in einem Mapeditor.