Esempio n. 1
0
 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);
        }
Esempio n. 3
0
    public void destroy_element(FlatElementBase aRemove)
    {
        FlatElementBase d = reposses_element(aRemove);

        if (d != null)
        {
            d.destroy();
        }
    }
Esempio n. 4
0
    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);
    }
Esempio n. 5
0
    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);
    }
Esempio n. 6
0
 //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);
 }
Esempio n. 7
0
        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)));
 }
Esempio n. 13
0
 public void return_particle(FlatElementBase aParticle)
 {
     aParticle.Enabled = false;
     mParticles.Add(aParticle);
 }
Esempio n. 14
0
 public static bool jiggle(FlatElementBase aBase, float aTime)
 {
     aBase.mLocalRotation = Quaternion.AngleAxis(Mathf.Sin(aTime * 1.5f) * 10, Vector3.forward);
     return(false);
 }