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
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
