Kollisionsabfrageproblem ?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Ground0
Beiträge: 318
Registriert: 05.02.2005 02:09
Wohnort: Stilli, Schweiz
Kontaktdaten:

Kollisionsabfrageproblem ?

Beitrag von Ground0 »

Hallo

Ich poste es einfach mal um :cry: aber irgendwie denke ich hier ist es mal besser aufgehoben wie vorhin...

Code: Alles auswählen

Define.f KeyX, KeyY, MouseX, MouseY

#WeltMesh      = 0
#Welt          = 0
#RobotMesh     = 1
#RobotTextur   = 1
#RobotMaterial = 1
#Robot         = 1


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")
  EnableWorldPhysics(1)
  EnableWorldCollisions(1)
  Add3DArchive("Welten\", #PB_3DArchive_FileSystem )
  Parse3DScripts()
  
  LoadMesh(#WeltMesh, "SacredPlace.mesh")
  CreateEntity(#Welt, MeshID(#WeltMesh), #PB_Material_None)

  Add3DArchive("Figuren\", #PB_3DArchive_FileSystem )
  
  LoadMesh(#RobotMesh, "Robot.mesh")
  LoadTexture(#RobotTextur, "r2skin.jpg")
  CreateMaterial(#RobotMaterial, TextureID(#RobotTextur))
  CreateEntity(#Robot, MeshID(#RobotMesh), MaterialID(#RobotMaterial))
  
  MoveEntity(#Robot,0,200,0)
  
  ;Gravitation und Collisionsinitiallisation
  WorldGravity(9.806)
  EntityPhysicBody(#Welt, #PB_Entity_StaticBody)
  EntityPhysicBody(#Robot, #PB_Entity_BoxBody)
  ;SetEntityMass(#Welt, 0)
  SetEntityMass(#Robot, 1000)
  SetEntityFriction(#Robot, 0)

  CreateCamera(0, 0, 0, 100, 100)
  CameraLocate(0,0,0,100)
  ;AnimateEntity(#Robot, "Walk")
  
  
  Repeat
    ClearScreen(RGB(0, 0, 0))
    ExamineWorldCollisions()
    If NextWorldCollision()
      If CheckEntityCollision(#Robot, #Welt)
        ;SetEntityMass(#Robot, 0)
        MoveEntity(#Robot,0,200,0)
      EndIf
    EndIf
    If ExamineKeyboard()
      
      If KeyboardPushed(#PB_Key_Left)
        KeyX = -11
      ElseIf KeyboardPushed(#PB_Key_Right)
        KeyX = 11
      Else
        KeyX = 0
      EndIf
        
      If KeyboardPushed(#PB_Key_Up)
        KeyY = -11
      ElseIf KeyboardPushed(#PB_Key_Down)
        KeyY = 11
      Else
        KeyY = 0
      EndIf
        
      If KeyboardPushed(#PB_Key_PageUp)
        RollZ = 3
      Else
        RollZ = 0
      EndIf
      
      If KeyboardPushed(#PB_Key_Add)
        Frame.f+0.005
      EndIf
      
    EndIf
    
    If ExamineMouse()
      MouseX = -MouseDeltaX()/10 
      MouseY = -MouseDeltaY()/10
    EndIf
    
    RotateEntity(1, 1, 0, 0)
    RotateEntity(2, 1, 0, 0)
    
    RotateCamera(0, MouseX, MouseY, RollZ)
    MoveCamera  (0, KeyX, 0, KeyY)
    
    RenderWorld()
    FlipBuffers()
  Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Weshalb bleibt der Roboter (Original PureBasic Roboter) etwa 70 Punkte über dem Boden stehen und fält dan nicht mehr weiter herunter?
Achja die Map ist eine Delgine Export V1.36 jeweils alles neuste versionen.

Gruss Ground0
lmon Monitoring Service inkl. Clients
lweb Multi-Threaded Webserver
lbup-server Backup Server applikation
lmanager ERP Applikation.
Benutzeravatar
grapy
Beiträge: 108
Registriert: 09.09.2004 09:05

Beitrag von grapy »

Hallo,

mal nur rein eine Vermutung....

mit EntityPhysicBody(#Robot, #PB_Entity_BoxBody) wird ja
eine virtuelle Box um das Entity erstellt.
Könnte sein, der Mittelpunkt des robot.mesh liegt etwas tiefer,
und damit wird auch die virtuelle Box größer als der Robot.

Also, im Prinzip hängt es ganz davon ab, wie die virtuelle Box
im Hintergrund erstellt wird.

Hast Du es auch schon mal mit #PB_Entity_SphereBody probiert?

Gruß :mrgreen: grapy
Benutzeravatar
Ground0
Beiträge: 318
Registriert: 05.02.2005 02:09
Wohnort: Stilli, Schweiz
Kontaktdaten:

Beitrag von Ground0 »

Hmm tja dan ist er nicht mehr ganz so hoch über dem Boden sieht aber immer noch ziemlich dof aus :roll:

Na Ja weis jemand wie man das noch beinflussen kann?

Gruss
lmon Monitoring Service inkl. Clients
lweb Multi-Threaded Webserver
lbup-server Backup Server applikation
lmanager ERP Applikation.
Benutzeravatar
Vallan
Beiträge: 223
Registriert: 20.01.2006 19:34
Kontaktdaten:

Beitrag von Vallan »

Probir die Verschiedenen Physic Bodys aus. zb. Kugel, Box, Static.
Benutzeravatar
grapy
Beiträge: 108
Registriert: 09.09.2004 09:05

Beitrag von grapy »

So wie ich die Sache sehe,
geht die Engine vom Mittelpunkt des Entitys aus,
wenn der aber daneben liegt,
dann liegt logischerweise auch der Physik Body daneben. :?
Antworten