Hi there,
I throw a ray and use triangle picking for line of sight - is it required to create collision tree and update it?? Generally I have done collisions using bounding so have no idea. If so could you provide a small snippet of how to do so? I have to give a demonstration tomorrow morning so any help would be very appreciated. I do it as follows(for 4 bots) - example of 1 is below:
public boolean lineOfSightGuard() //improve sight to three rays
{
Vector3f gP = guardNode.getLocalTranslation();
Ray ray = new Ray(guardNode.getLocalTranslation(), guardNode.getLocalRotation().getRotationColumn(2));
PickResults results = new TrianglePickResults();
results.setCheckDistance(true);
scene.findPick(ray,results);
System.out.println(results.getPickData(0).getTargetMesh().getParentGeom().getParent().getName());
System.out.println(results.getPickData(1).getTargetMesh().getParentGeom().getParent().getName());
System.out.println(results.getPickData(2).getTargetMesh().getParentGeom().getParent().getName());
System.out.println(results.getPickData(3).getTargetMesh().getParentGeom().getParent().getName());
if(results.getNumber() > 0 && results.getPickData(0).getTargetMesh().getParentGeom().getParent().getName() != "Walls"
&& player1.getWorldBound().intersects(ray))
{
System.out.println("Inside the first loop - Guard");
//three are itself as explained
//shootAtPlayer(enemyNode, ammoEnemy); //in the post
System.out.println("!!!!!!!!!!!!!!!!!Player spotted - Guard!!!!!!!!!!!!");
results.clear();
return true;
}
else
{
return false;
}
}