PDA

Просмотр полной версии : [Вопрос] Определение "переда" автомобиля



Danil_Cage
26.11.2016, 12:18
Собственно, суть в том, что я хочу создавать взрыв перед автомобилем, но не знаю как повернуть взрыв в сторону направления автомобиля.

ziggi
26.11.2016, 12:45
stock GetCoordsInFront(Float:x, Float:y, Float:a, Float:distance, &Float:res_x, &Float:res_y)
{
res_x = x + (distance * floatsin(-a, degrees));
res_y = y + (distance * floatcos(-a, degrees));
}


new Float:x, Float:y, Float:z, Float:a;
GetVehiclePos(vehicleid, x, y, z);
GetVehicleZAngle(vehicleid, a);

new Float:explosion_x, Float:explosion_y;
GetCoordsInFront(x, y, a, 3.0, explosion_x, explosion_y);

CreateExplosion(explosion_x, explosion_y, z, 3, 4.0);



stock GetCoordsBefore(Float:x, Float:y, Float:a, Float:distance, &Float:res_x, &Float:res_y)
{
res_x = x + (distance * floatsin(-a, degrees));
res_y = y + (distance * floatcos(-a, degrees));
}


new Float:x, Float:y, Float:z, Float:a;
GetVehiclePos(vehicleid, x, y, z);
GetVehicleZAngle(vehicleid, a);

new Float:explosion_x, Float:explosion_y;
GetCoordsBefore(x, y, a, 3.0, explosion_x, explosion_y);

CreateExplosion(explosion_x, explosion_y, z, 3, 4.0);

Danil_Cage
26.11.2016, 14:40
stock GetCoordsBefore(Float:x, Float:y, Float:a, Float:distance, &Float:res_x, &Float:res_y)
{
res_x = x + (distance * floatsin(-a, degrees));
res_y = y + (distance * floatcos(-a, degrees));
}


new Float:x, Float:y, Float:z, Float:a;
GetVehiclePos(vehicleid, x, y, z);
GetVehicleZAngle(vehicleid, a);

new Float:explosion_x, Float:explosion_y;
GetCoordsBefore(x, y, a, 3.0, explosion_x, explosion_y);

CreateExplosion(explosion_x, explosion_y, z, 3, 4.0);

Ого, спасибо большое. Я так и думал, что нужно угол находить, но не знал как.

Nexius_Tailer
26.11.2016, 18:29
stock GetCoordsBefore(Float:x, Float:y, Float:a, Float:distance, &Float:res_x, &Float:res_y)
{
res_x = x + (distance * floatsin(-a, degrees));
res_y = y + (distance * floatcos(-a, degrees));
}


new Float:x, Float:y, Float:z, Float:a;
GetVehiclePos(vehicleid, x, y, z);
GetVehicleZAngle(vehicleid, a);

new Float:explosion_x, Float:explosion_y;
GetCoordsBefore(x, y, a, 3.0, explosion_x, explosion_y);

CreateExplosion(explosion_x, explosion_y, z, 3, 4.0);
Только небольшая ремарка: "before" обычно понимается скорее как "предыдущий" перед чем-либо во времени. Для данной ситуации подходит больше "GetCoordsInFront". Даже в первоисточниках ещё помню у неё было подобное название, хоть на практике это и не сильно важно.

ziggi
26.11.2016, 19:44
Только небольшая ремарка: "before" обычно понимается скорее как "предыдущий" перед чем-либо во времени. Для данной ситуации подходит больше "GetCoordsInFront". Даже в первоисточниках ещё помню у неё было подобное название, хоть на практике это и не сильно важно.

Согласен, в английском я не силён :).