forked from Mirrors/openclonk
Object.c: New functions
Needed AddSpeed() in a project and thought that it would be a good addition. AddVelocity() is not used so far, maybe we should remove it again.directional-lights
parent
a46ecc7b5b
commit
f2870dfa16
|
@ -19,6 +19,13 @@ global func GetSpeed(int prec)
|
|||
return Sqrt(GetXDir(prec)**2 + GetYDir(prec)**2);
|
||||
}
|
||||
|
||||
// You can add to the two components of the velocity vector individually with this function.
|
||||
global func AddSpeed(int x_dir, int y_dir, int prec)
|
||||
{
|
||||
SetXDir(GetXDir(prec) + x_dir, prec);
|
||||
SetYDir(GetYDir(prec) + y_dir, prec);
|
||||
}
|
||||
|
||||
// Sets an objects's speed and its direction, doesn't it?
|
||||
// Can set either speed or angle of velocity, or both
|
||||
global func SetVelocity(int angle, int speed, int precAng, int precSpd)
|
||||
|
@ -38,6 +45,27 @@ global func SetVelocity(int angle, int speed, int precAng, int precSpd)
|
|||
return;
|
||||
}
|
||||
|
||||
// Adds to an objects's speed and its direction:
|
||||
// Can set either speed or angle of velocity, or both
|
||||
global func AddVelocity(int angle, int speed, int precision_angle, int precision_speed)
|
||||
{
|
||||
precision_speed = precision_speed ?? 10;
|
||||
precision_angle = precision_angle ?? 1;
|
||||
speed = speed ?? 0;
|
||||
angle = angle ?? 0;
|
||||
|
||||
var current_x_dir = GetXDir(precision_speed);
|
||||
var current_y_dir = GetYDir(precision_speed);
|
||||
|
||||
var x_dir = +Sin(angle, speed, precision_angle);
|
||||
var y_dir = -Cos(angle, speed, precision_angle);
|
||||
|
||||
SetXDir(current_x_dir + x_dir, precision_speed);
|
||||
SetYDir(current_y_dir + y_dir, precision_speed);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Sets the completion of this to new_con.
|
||||
global func SetCon(int new_con, int precision, bool grow_from_center)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue