public ElementOffset(FlatElementBase element, Vector3 offset) { Element = element; Position = offset; Scale = Vector3.one; Rotation = Quaternion.identity; }
public bool animate(FlatElementBase aElement, float aDeltaTime) { float angle = 20 * Mathf.Cos(aDeltaTime + mOffset); aElement.mLocalRotation = Quaternion.AngleAxis(angle, Vector3.forward); return(false); }
public void destroy_element(FlatElementBase aRemove) { FlatElementBase d = reposses_element(aRemove); if (d != null) { d.destroy(); } }
public FlatSubParticle add_particle(FlatElementBase aParticle, Vector3 aPos, Vector3 aVel, float aLifetime, string aId) { FlatSubParticle addMe = new FlatSubParticle(); addMe.id = aId; addMe.pos = aPos; addMe.vel = aVel; addMe.element = aParticle; addMe.timer = new QuTimer(0, aLifetime); mParticles.AddLast(addMe); return(addMe); }
public FlatElementBase take_particle() { FlatElementBase r = null; if (has_particle()) { r = mParticles[mParticles.Count - 1]; r.Enabled = true; mParticles.RemoveAt(mParticles.Count - 1); } return(r); }
//returns null if element did not exist. public FlatElementBase reposses_element(FlatElementBase aRemove) { for (int i = 0; i < mElements.Count; i++) { if (mElements[i].Element == aRemove) { mElements.RemoveAt(i); return(aRemove); } } return(null); }
public void update(float aDeltaTime, FlatElementBase aElement) { LinkedList <KeyValuePair <QuTimer, Func <FlatElementBase, float, bool> > > removal = new LinkedList <KeyValuePair <QuTimer, Func <FlatElementBase, float, bool> > >(); foreach (KeyValuePair <QuTimer, Func <FlatElementBase, float, bool> > e in mTimedEvents) { e.Key.update(aDeltaTime); if (e.Key.isExpired()) { if (e.Value(aElement, e.Key.getTimeSinceStart())) { removal.AddLast(e); } } } foreach (KeyValuePair <QuTimer, Func <FlatElementBase, float, bool> > e in removal) { mTimedEvents.Remove(e.Key); } }
public void focus_camera_on_element(FlatElementBase aElement) { Rect focus = aElement.BoundingBox; //TODO what if camera is not orthographic float texRatio = focus.width / (float)focus.height; float camRatio = this.Camera.aspect; if (camRatio > texRatio) //match width { Interpolator.TargetOrthographicHeight = BodyManager.convert_units(focus.width / camRatio) / 2.0f; } else { Interpolator.TargetOrthographicHeight = BodyManager.convert_units(focus.height) / 2.0f; } Vector3 position = aElement.HardPosition; position.z = Center.z + Distance; Interpolator.TargetSpatialPosition = new SpatialPosition(position, Camera.transform.rotation); }
public static void SetRotation(float aTime, float aForce, FlatElementBase aElement) { aElement.mLocalRotation = Quaternion.AngleAxis(aForce * Random.Range(-1.0f, 1.0f), Vector3.forward); }
public static void SetPosition(float aTime, float aForce, FlatElementBase aElement) { aElement.mLocalPosition = Random.insideUnitCircle * aForce; }
public bool animate(FlatElementBase aElement, float aDeltaTime) { mTime.update(aDeltaTime); mChange(mTime.getLinear(), mFunction(mTime.getLinear()) * mForce, aElement); return(mTime.isExpired()); }
public static void SetColor(float aTime, float aForce, FlatElementBase aElement) { aElement.mLocalColor = aForce * (new Color(Random.Range(-1f, 1f), Random.Range(-1f, 1f), Random.Range(-1f, 1f))); }
public void return_particle(FlatElementBase aParticle) { aParticle.Enabled = false; mParticles.Add(aParticle); }
public static bool jiggle(FlatElementBase aBase, float aTime) { aBase.mLocalRotation = Quaternion.AngleAxis(Mathf.Sin(aTime * 1.5f) * 10, Vector3.forward); return(false); }