public void shoot(Vector2 direction, GameObject shooter) { this.shooter = shooter; PhisicalObject po = gameObject.GetComponent <PhisicalObject> (); po.AddForce(direction * force); }
static public void JetRotatEngineOperation(PhisicalObject o, double timeInSecond) { RocketBody rocket = (RocketBody)o; rocket.AddMomentOfImpulse( rocket.dMomentumPerSecond * (int)rocket.rotationEngine ); }
public static void SetPhDelegateValue(PhisicalObject o) { o.InteractionWithAll = null; o.ActionAlways = null; o.InteractToCondit = new List <KeyValuePair <InteractCondition, Interaction> >(); o.ActToCondit = new List <KeyValuePair <ActCondition, Action> >(); }
static public void JetTransEngineOperation(PhisicalObject o, double timeInSecond) { RocketBody rocket = (RocketBody)o; Coord dp = Coord.FromPolar( rocket.dImpulsPerSecond * (int)rocket.translationEngine, rocket.angle ); rocket.AddImpulse(dp); }
public static Coord CosmicSpeeds(PhisicalObject m1, PhisicalObject m2, int number) { double V = Math.Sqrt( Math.Abs(number) * GravityConst * m2.mass / (m2.coord - m1.coord).polarR ); Coord Speed = Coord.FromPolar( V * number / Math.Abs(number), (m2.coord - m1.coord).polarAngle - Math.PI / 2 ); return(Speed + m2.speed); }
void FixedUpdate() { RaycastHit hit = new RaycastHit(); if (Physics.Linecast(transform.position, transform.position + ((trajectory * -1) * drag * timeScale) + (gravity * timeScale) + (trajectory * timeScale), out hit)) { PhisicalObject obj = hit.collider.GetComponent <PhisicalObject>(); if ((!obj || obj.collision) && !noClip) { trajectory = trajectory - 2 * Vector3.Dot(trajectory, hit.normal) * (hit.normal); transform.position = hit.point; hit.collider.GetComponent <PhisicalObject>(); } } AddForce((trajectory * -1) * drag * timeScale); transform.position += gravity * timeScale; transform.position += trajectory * timeScale; }
public static Coord NewtonForce(PhisicalObject m1, PhisicalObject m2) { return(GravityConst * m1.mass * m2.mass / Math.Pow((m2.coord - m1.coord).polarR, 3) * (m2.coord - m1.coord)); }
public static void GravitationalInteraction(PhisicalObject m1, PhisicalObject m2, double timeInSec) { m1.ActForce(Gravitation.NewtonForce(m1, m2), timeInSec); }
public PhisicalModel Add(PhisicalObject o) { pObjects.Add(o); return(this); }