Ogre: Entitys haben kein lokales Koordinatensystem?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
johann.boehme
Beiträge: 36
Registriert: 09.03.2005 20:17

Re: Ogre: Entitys haben kein lokales Koordinatensystem?

Beitrag von johann.boehme »

okay ^^ die Demos hab ich zum laufen gekriegt.
Sehen auch auch echt gut aus ;)
Aber gibts ne Doku zu der Engine?
Die Examples sind ja ganz okay, ich würd aber schon ganz gerne wissen, was so mancher Parameter macht..
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Re: Ogre: Entitys haben kein lokales Koordinatensystem?

Beitrag von Vermilion »

Meines Wissens gibt es wie bei Dreamotion3D schon keine Dokumentation, die auf PureBasic bezogen ist. Vielleicht kommt das noch. Ich wäre daran auch interessiert. Denn ansonsten könnte man sich nur an den Referenzen die in den Beispielen enthalten sind bedienen.
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Re: Ogre: Entitys haben kein lokales Koordinatensystem?

Beitrag von super_castle »

die Help die dabei ist, ist ja leider für C++ ^^
Anhand der Help C++ kann man die Aufgaben der Werte gut rauslesen.
Der Leadwerks Wrap ist ja leider auch noch nicht fertig..
Beschäftige dich doch erstmal mit dem angebotenen, dann siehst du auch ohne "Leadwerks Wrap"
die wunderbaren Dinge, die man recht einfach und kurz programmieren kann.

mfg
Benutzeravatar
captain_hesse
Beiträge: 138
Registriert: 17.05.2009 18:55
Computerausstattung: Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)
Wohnort: Saarland

Re: Ogre: Entitys haben kein lokales Koordinatensystem?

Beitrag von captain_hesse »

Hallo.

@johann.boehme
Das was du gerne möchtest geht mit PointPick() und den pick() befehlen.

Code: Alles auswählen

 InitEngine3D()

  Add3DArchive("3d-Test", #PB_3DArchive_FileSystem)
  
  
  InitSprite()
  InitKeyboard()
  InitMouse()

  OpenWindow(0, 0, 0, 1024, 768, "")
  OpenWindowedScreen(WindowID(0), 0, 0, 1024, 768, 0, 0, 0)
  SetFrameRate(200)
 
  EnableWorldPhysics(1)
  EnableWorldCollisions(1)
  
  LoadMesh   (0, "kamera.mesh")
  LoadMesh   (1, "boden.mesh")
  LoadMesh   (2, "haus.mesh")
  
  LoadTexture(0, "kamera-texture.jpg")
  LoadTexture(1, "boden-texture.jpg")
  LoadTexture(2, "haus-texture.jpg")
  
  CreateMaterial(0, TextureID(0))
  CreateMaterial(1, TextureID(1))
  CreateMaterial(2, TextureID(2))
  
  CreateEntity(0, MeshID(0), MaterialID(0))
  CreateEntity(1, MeshID(1), MaterialID(1))
  CreateEntity(2, MeshID(2), MaterialID(2))

    
  RotateEntity(1, 90, 0, 0)  
  EntityLocate(1,0,-100,0)  
  ScaleEntity(1,5,5,5)   
  ScaleEntity(0,0.3,0.3,0.3)   
  EntityLocate(0,-1000,0,0)  
  EntityLocate(2,0,30,0)  
  
  
  
    CreateCamera(0, 0, 0, 100, 100)
    CameraLocate(0,0,0,0)
    RotateCamera(0,-0,0,0)
    CameraBackColor(0, RGB(0, 0, 255))
    
    CreateCamera(1, 50, 50, 50, 50)
    CameraLocate(1,0,1500,00)
    RotateCamera(1,-55,0,0)
    
        
    EntityPhysicBody(0, #PB_Entity_BoxBody,#PB_Entity_AbsoluteBodyMove)
    EntityPhysicBody(1, #PB_Entity_StaticBody )
    EntityPhysicBody(2, #PB_Entity_StaticBody  )
    
    CreateLight(0, RGB(255,255,255), 0, 1000, 0)
    
        
    speed.f=400
    
        
    Repeat
      
      
      If ExamineWorldCollisions()
         Debug "crash"
         col= NextWorldCollision()
         Debug col
      EndIf   
      
            
      If ExamineKeyboard()
      
        If KeyboardPushed(#PB_Key_A)
           KeyX.f = -speed/2
        ElseIf KeyboardPushed(#PB_Key_D)
          KeyX.f = speed/2
        Else
         KeyX = 0
        EndIf
        
        If KeyboardPushed(#PB_Key_W)
          KeyY.f = -speed
        ElseIf KeyboardPushed(#PB_Key_S)
          KeyY.f = speed
        Else
          KeyY = 0
        EndIf
      EndIf
      
      If ExamineMouse()
        MouseX.f = -MouseDeltaX()/10
        MouseY.f = -MouseDeltaY()/10
        mousex1.f+mousex
        mousey1.f+mousey
      EndIf
      
      If mousey1.f>55 
         mousey1.f=55 
      EndIf     
      If mousey1.f<-55 
          mousey1.f=-55 
      EndIf  
 
      If mousex1>=360 Or mousex1<=-360
      Mousex1=0
      EndIf
 
 
     
      PointPick(0, 1024/2, 768/2)
      rix.f=PickX()
      riy.f=PickY()
      riz.f=PickZ()
      x.f= -Keyy*rix-Keyx*riz
      y.f= -KeyY*riz+Keyx*rix
     
     
        
      RotateCamera(0, MouseY1, MouseX1, 0, #PB_Absolute)
      RotateEntity(0, 0, MouseX1, 0, #PB_Absolute)
      EntityLocate(0,EntityX(0),EntityY(1)+100,EntityZ(0))
      MoveEntity(0, x, 0, y)
      CameraLocate(0,EntityX(0),EntityY(0),EntityZ(0))
       
            
      CameraLookAt(1,EntityX(0),EntityY(0),EntityZ(0))
    
     ;Delay(20)
     RenderWorld()
     
     
     
     FlipBuffers()
      
    Until KeyboardPushed(#PB_Key_Escape) 
    
    
musste da auch ein bißchen dran rum experimentiert bis ich das hatte. Komme jetz aber leider nicht mehr weiter weil die Collisionsabfrage mit statischen Objekten immer noch nicht funktioniert und weil der Parameter #PB_Entity_AbsoluteBodyMove offenbar einen Fehler veruhrsacht.
Hier gibts das 3D Archiv
Vieleicht kannst du ja mit dem Code was anfangen.

MfG.
Captain_hesse
Antworten