Jump to content

Разворот игрока к двум точкам


Recommended Posts

Здравствуйте, конечно я недавно в Lua, по этому хотел спросить, как развернуть игрока к двум точкам? Сам в математике/геометрии и тригонометрии не силен вообще!

Есть формула только на Pawn коде.

А вот как её сделать в Lua я не знаю.

  
#define fclamp360(%0) %0 += (%0 >= 360.0) ? -360.0 : ((%0 < 0.0) ? 360.0 : 0.0)  
stock Float:GetZAngleToPoint(Float:x1, Float:y1, Float:x2, Float:y2) 
{ 
    new Float:zangle; 
    zangle = (180.0 - atan2(floatsub(x1, x2), floatsub(y1, y2))); 
   fclamp360(zangle); 
   return zangle; 
} 
  

Edited by Guest
Link to comment
Здравствуйте, конечно я недавно в Lua, по этому хотел спросить, как развернуть игрока к двум точкам? Сам в математике/геометрии и тригонометрии не силен вообще!

Есть формула только на Pawn коде.

А вот как её сделать в Lua я не знаю.

  
#define fclamp360(%0) %0 += (%0 >= 360.0) ? -360.0 : ((%0 < 0.0) ? 360.0 : 0.0)  
stock Float:GetZAngleToPoint(Float:x1, Float:y1, Float:x2, Float:y2) 
{ 
    new Float:zangle; 
    zangle = (180.0 - atan2(floatsub(x1, x2), floatsub(y1, y2))); 
   fclamp360(zangle); 
   return zangle; 
} 
  

Делается это очень простой формулой

angle = ( 360.0 - math.deg( math.atan2( targetX - currentX, targetY - currentY ) ) ) % 360.0; 

current* - коодринаты игрока

target* - координаты куда нужно повренуть

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...