Camera pos problem -
cnoopers - 14.07.2014
Camera is not move when i clicked button. Why?
Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
new Float:x, Float:y, Float:z;
GetPlayerCameraPos(playerid, x, y, z);
if(PRESSED(KEY_LEFT))
{
if(x == 340.62, y == -1805.01, z == 4.85)
{
SetPlayerCameraPos(playerid, 344.9864, -1804.2064, 5.0261);
SetPlayerCameraLookAt(playerid, 345.4295, -1805.1089, 4.8861);
}else if(x == 344.98, y == -1804.20, z == 5.02)
{
SetPlayerCameraPos(playerid, 347.9968, -1803.8370, 5.0931);
SetPlayerCameraLookAt(playerid, 348.4687, -1804.7250, 4.9281);
}else if(x == 347.99, y == -1803.83, z == 5.09)
{
SetPlayerCameraPos(playerid, 350.8560, -1804.5853, 4.8707);
SetPlayerCameraLookAt(playerid, 351.4023, -1805.4297, 4.7207);
}else if(x == 350.85, y == -1804.58, z == 4.87)
{
SetPlayerCameraPos(playerid, 354.1051, -1804.1498, 5.0500);
SetPlayerCameraLookAt(playerid, 354.6397, -1805.0023, 4.8950);
}
}else if(PRESSED(KEY_RIGHT))
{
if(x == 354.10, y == -1804.14, z == 5.05)
{
SetPlayerCameraPos(playerid, 350.8560, -1804.5853, 4.8707);
SetPlayerCameraLookAt(playerid, 351.4023, -1805.4297, 4.7207);
}else if(x == 350.85, y == -1804.58, z == 4.87)
{
SetPlayerCameraPos(playerid, 347.9968, -1803.8370, 5.0931);
SetPlayerCameraLookAt(playerid, 348.4687, -1804.7250, 4.9281);
}else if(x == 347.99, y == -1803.83, z == 5.09)
{
SetPlayerCameraPos(playerid, 344.9864, -1804.2064, 5.0261);
SetPlayerCameraLookAt(playerid, 345.4295, -1805.1089, 4.8861);
}else if(x == 344.98, y == -1804.20, z == 5.02)
{
SetPlayerCameraPos(playerid, 340.6235, -1805.0142, 4.8561);
SetPlayerCameraLookAt(playerid, 341.2792, -1805.7775, 4.7310);
}
}
return 1;
}
Re: Camera pos problem -
Vince - 14.07.2014
Movement keys (up, down, left, right) aren't detected by OnPlayerKeyStateChange, as it clearly states on the wiki. If you explicitly need those key, you'll probably want to use OnPlayerUpdate combined with some other variable to verify that the camera should change.
Also, you can't really compare floating point values like that because floats aren't exact. The x position retrieved from camerapos may be 340.619999. This isn't the same as 340.62 and thus the code will probably fail (I don't know the exact mechanics behind float comparison).
Re: Camera pos problem -
cnoopers - 15.07.2014
So how can i do it?
now i have:
Код:
//OnPlayerUpdate
new Float:x, Float:y, Float:z;
new keys, ud, lr;
GetPlayerKeys(playerid, keys, ud, lr);
GetPlayerCameraPos(playerid, x, y, z);
if(lr == KEY_LEFT)
{
if(x == 340.62, y == -1805.01, z == 4.85)
{
SetPlayerCameraPos(playerid, 344.9864, -1804.2064, 5.0261);
SetPlayerCameraLookAt(playerid, 345.4295, -1805.1089, 4.8861);
}else if(x == 344.98, y == -1804.20, z == 5.02)
{
SetPlayerCameraPos(playerid, 347.9968, -1803.8370, 5.0931);
SetPlayerCameraLookAt(playerid, 348.4687, -1804.7250, 4.9281);
}else if(x == 347.99, y == -1803.83, z == 5.09)
{
SetPlayerCameraPos(playerid, 350.8560, -1804.5853, 4.8707);
SetPlayerCameraLookAt(playerid, 351.4023, -1805.4297, 4.7207);
}else if(x == 350.85, y == -1804.58, z == 4.87)
{
SetPlayerCameraPos(playerid, 354.1051, -1804.1498, 5.0500);
SetPlayerCameraLookAt(playerid, 354.6397, -1805.0023, 4.8950);
}
}else if(lr == KEY_RIGHT)
{
if(x == 354.10, y == -1804.14, z == 5.05)
{
SetPlayerCameraPos(playerid, 350.8560, -1804.5853, 4.8707);
SetPlayerCameraLookAt(playerid, 351.4023, -1805.4297, 4.7207);
}else if(x == 350.85, y == -1804.58, z == 4.87)
{
SetPlayerCameraPos(playerid, 347.9968, -1803.8370, 5.0931);
SetPlayerCameraLookAt(playerid, 348.4687, -1804.7250, 4.9281);
}else if(x == 347.99, y == -1803.83, z == 5.09)
{
SetPlayerCameraPos(playerid, 344.9864, -1804.2064, 5.0261);
SetPlayerCameraLookAt(playerid, 345.4295, -1805.1089, 4.8861);
}else if(x == 344.98, y == -1804.20, z == 5.02)
{
SetPlayerCameraPos(playerid, 340.6235, -1805.0142, 4.8561);
SetPlayerCameraLookAt(playerid, 341.2792, -1805.7775, 4.7310);
}
}
Re: Camera pos problem -
BroZeus - 15.07.2014
this--
Quote:
Directional keys do not trigger OnPlayerKeyStateChange (up/down/left/right). They can only be detected with GetPlayerKeys (in OnPlayerUpdate).
|
EDIT: dint saw ur last post and yes its done like that only but see the float thing that vince said
Re: Camera pos problem -
cnoopers - 15.07.2014
Quote:
Originally Posted by BroZeus
this--
|
look up, man.
EDIT:
but still not work, i should replace check position another function, but idk how.
Re: Camera pos problem -
BroZeus - 15.07.2014
Quote:
Originally Posted by cnoopers
look up, man.
|
sry didnt saw ur last post see the edit i made
Re: Camera pos problem -
cnoopers - 15.07.2014
what i gotta do next, it is not work.
Re: Camera pos problem -
cnoopers - 16.07.2014
anyone? please