Aktuelle Zeit: 09.05.2024, 07:33

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: Kollision funktioniert nur halb
BeitragVerfasst: 06.01.2010, 11:34 
Offline

Registriert: 01.01.2010, 17:18
Beiträge: 11
Guten Tag,
momentan quäle ich mich mit den Kollisions-abfagen bei Irrlicht. Meine Spielfigur soll nicht nur die Map durchfallen: Das tut sie auch nicht so ohne weiteres, jedoch nur solange, bis ich laufe, dann scheinen die Abfrange nichtmehr so ganz zu funktionieren.

Sobald die Figur einen Berg oder sonst irgendetwas raussliden soll, dann fährt sie einfach durch das Objekt durch, wenn sie runtersliden soll aber geht es.

Hier ist der Code für die Kollision (BlitzMax):

Code:
 
  Function Detect:TCollision(node:tobject,target:tobject,typ:Byte) 'typ:  0=Kugel gegen Poly
     Select typ
       Case 0 'Kugel geht gegen ein Polygone
          Local target_mesh:imesh
          Local selector:ITriangleSelector
          Local pos:Vector3df   
          Local speed:vector3df = node.node.getposition().minus(node.lastpos)
          Local tri:Triangle3df = Triangle3df.Create()
          Local falling:Int = 0

          If IAnimatedMeshSceneNode(target.node)
            target_mesh = IAnimatedMeshSceneNode(target.node).getmesh().getmesh(0)
          Else
            target_mesh = IMeshSceneNode        (target.node).getmesh()
          EndIf
          If target_mesh = Null Then n3d.debug("coll","Invalid target")
          selector = n3d.irr_smgr.createTriangleSelector(target_mesh,target.node)
          pos = n3d.irr_cmgr.getCollisionResultPosition( selector,node.lastpos.minus(node.coll_epos),node.coll_erad,speed,tri,Varptr(falling),0) 'sliding schon mit verschiedenen Werten probiert
          pos.pluseq(node.coll_epos)
          node.UpdatePos()
          node.node.setposition(pos)
     End Select
  End Function


n3d.irr_smgr = Scene Manager
n3d.irr_cmgr = Collision Manager

Pro Frame geht die Figur um 1 nach unten.

Hat jemand vielleicht eine Idee, woran das liegen kann? Vielen Dank im Vorraus :P



Gruß
Bastian

EDIT: Ok, ich habe es selber herrausgefunden: Die "alte" Position des Nodes wurde an der falschen stelle abgespeichert und im allgemeinem wurde vieles in der falschen Reinfolge ausgeführt. Trotzdem Danke :-)


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de