Jump to content

[SOLVED] Check collision for PlayerSpectator at mouse wheel event.


photo

Recommended Posts

Posted

Hi all,

I have a PlayerSpectator instance as game player and I want to reduce or increase the distance to the target using the mouse wheel.

In some point at update function I execute this code:

if(engine.app.getMouseButtonState(APP_BUTTON_UP)) {
 p_player.setDistance(p_player.getDistance() + 2);
 p_player.updateControls(engine.game.getFTime());
 p_player.flushTransform();
} else if(engine.app.getMouseButtonState(APP_BUTTON_DOWN)) {
 p_player.setDistance(p_player.getDistance() - 2);
 p_player.updateControls(engine.game.getFTime());
 p_player.flushTransform();
}

It does the job, but camera doesn't collide against other objects so I can pass through them. This is not desirable :)

 

How can I perform the collision test just after modify the player distance?

 

Thanks.

Posted

At the end this works:

if(engine.app.getMouseButtonState(APP_BUTTON_UP)) {
 mat4 m= p_player.getWorldTransform();
 vec3 p0= p_player.getWorldPosition();
 p_player.setDistance(p_player.getDistance() + 2);
 vec3 p1= p_player.getWorldPosition();
 int res[4]= ();
 if(engine.world.getIntersection(p0,p1,-1,res) != NULL)
   p_player.setWorldTransform(m);
} else if(engine.app.getMouseButtonState(APP_BUTTON_DOWN)) {
 mat4 m= p_player.getWorldTransform();
 vec3 p0= p_player.getWorldPosition();
 p_player.setDistance(p_player.getDistance() - 2);
 vec3 p1= p_player.getWorldPosition();
 int res[4]= ();
 if(engine.world.getIntersection(p0,p1,-1,res) != NULL)
   p_player.setWorldTransform(m);
}

×
×
  • Create New...