Dwight
Member
|
Lock mouse position
Good morning to all of you!
Now my switching from Third person to first person and vise versa is going sweet, but since it will checks in both views what is under the mouse in the future, I would like to freeze the mouse (Ms.freeze()) at the center of the screen (also the position of the crosshair).
When I place my mouse in a random position on the screen in TPP and switch to FPP, it already freezes, but only at that random position I was at with my mouse. The following code is what I put in the FPP:
Code:
if (Ms.visible())
{
Ms.toggle();
// Lock the mouse here in the center of the application..
Ms.freeze();
}
I checked the mouse.h but could only came up with ways to get the mouse position, and not set the position.
Thanks again in advance!!!
SnowCloud Entertainment - We are recruiting!
http://www.sc-entertainment.com
|
|
02-04-2011 11:19 AM |
|
Esenthel
Administrator
|
RE: Lock mouse position
in freeze there's comment you need to call it every frame
|
|
02-04-2011 06:06 PM |
|
Dwight
Member
|
RE: Lock mouse position
It stays at one position. But instead it should not freeze at the position where the mouse is at the time of switching, but in the center.
Steps as it should be:
1. Go to first person view
2. force mouse to the center of the screen (location 0,0 if you like)
3. freeze the mouse in the center of the screen
Steps as they are now.
1. Go to first person mode
2. mouse freezes at the point where the mouse was located in third person view at first
3. ...
Thus basically, instead of getting the mouse location, I want to override the mouse control, and force the cursor to the center of the screen, where it should stay put until back to third person perspective again.
SnowCloud Entertainment - We are recruiting!
http://www.sc-entertainment.com
(This post was last modified: 02-04-2011 07:32 PM by Dwight.)
|
|
02-04-2011 07:27 PM |
|
Esenthel
Administrator
|
RE: Lock mouse position
why you want to force mouse cursor at 0,0?
if you want to have crosshair or some other icon just draw it manually Image::draw, and hide mouse cursor
|
|
02-05-2011 12:00 PM |
|
Dwight
Member
|
RE: Lock mouse position
The crosshair is drawn correctly like in the Bloody Massacre, but when the mouse hovers over a target, it's name has to change from white to a different colour.
I was thus thinking if the mouse hovers over a character while the mouse is hidden in a random position in FPP from switching from TPP, that would not occur correctly...
?
SnowCloud Entertainment - We are recruiting!
http://www.sc-entertainment.com
|
|
02-05-2011 12:10 PM |
|
Seba
Member
|
RE: Lock mouse position
Maybe try to make it like lit items in tutorials:
Quote:/******************************************************************************/
Bool CROOSHAIRHIT::hit(EE::PhysHit &phys_hit)
{
Vec test_pos=Players[0].pos()-Vec(0,Players[0].ctrl.height()/2,0);
if(PLAYER *player=CAST(PLAYER,phys_hit.obj))
{
return true;
}
else
if(ITEM *item=CAST(ITEM,phys_hit.obj))
{
if(Dist(test_pos,item->mesh->box*item->matrixScaled())<=Players[0].ctrl.radius()+4.0f)
Lit_Item=phys_hit.obj;
return false;
}
else
if(MONSTER *monster=CAST(MONSTER,phys_hit.obj))
{
if(Dist(test_pos,monster->mesh->box*monster->matrix())<=Players[0].ctrl.radius()+4.0f)
Lit_Monster=phys_hit.obj;
return false;
}
return false;
}
void GetWorldObjectUnderCursor()
{
Lit_Item=NULL;
Lit_Monster=NULL;
if(!Gui.ms() || Gui.ms()==Gui.desktop())
{
Vec pos,dir; ScreenToPosDir(Vec2(0,0),pos,dir);
CROOSHAIRHIT CrooshairHit;
Physics.ray(pos,dir*D.viewRange(),CrooshairHit);
}
}
/******************************************************************************/
|
|
02-05-2011 12:33 PM |
|
Esenthel
Administrator
|
RE: Lock mouse position
Ms.hidden() ? Vec2(0,0) : Ms.pos()
|
|
02-05-2011 12:37 PM |
|