Example #1
0
    bool CheckSwingDone()
    {
        List <SwordFrame> swingDesc = Swings[swingIndex];
        SwordFrame        lastFrame = swingDesc[swingDesc.Count - 1];

        return(swingElapsedTime > lastFrame.frameTime);
    }
Example #2
0
    void RecordSwordFrame()
    {
        SwordFrame thisFrame = new SwordFrame();

        thisFrame.hiltPos   = this.hiltPos;
        thisFrame.tipPos    = this.tipPos;
        thisFrame.frameTime = Time.realtimeSinceStartup;
        recordedFrames.Add(thisFrame);
    }
Example #3
0
    void DrawSwordFrame(SwordFrame f, Color[] pixels, float cityScale, float alpha)
    {
        Vector2    worldTipPos   = ConvertSwordCoordsToWorldCoords(f.tipPos);
        Vector2    worldHiltPos  = ConvertSwordCoordsToWorldCoords(f.hiltPos);
        Vector2Int screenTipPos  = myCity.WorldToScreen(worldTipPos);
        Vector2Int screenHiltPos = myCity.WorldToScreen(worldHiltPos);

        FakeBresenham(screenTipPos, screenHiltPos, pixels, Color.white, alpha);
        //Bresenham(screenTipPos, screenHiltPos, pixels, Color.white, alpha);
    }
Example #4
0
    void InterpSwordFrames(int index0, int index1, float interpFactor)
    {
        List <SwordFrame> swingDesc = Swings[swingIndex];
        SwordFrame        prevFrame = swingDesc[index0];
        SwordFrame        nextFrame = swingDesc[index1];

        Vector2 hiltDelta = nextFrame.hiltPos - prevFrame.hiltPos;

        this.hiltPos = prevFrame.hiltPos + hiltDelta * interpFactor;

        Vector2 tipDelta = nextFrame.tipPos - prevFrame.tipPos;

        this.tipPos = prevFrame.tipPos + tipDelta * interpFactor;
    }
Example #5
0
 void PurgeSwordFrames()
 {
     while (recordedFrames.Count > 0)
     {
         SwordFrame f = recordedFrames[0];
         if (Time.realtimeSinceStartup - f.frameTime > SwordFade)
         {
             recordedFrames.RemoveAt(0);
         }
         else
         {
             break;
         }
     }
 }
Example #6
0
    void MoveSword()
    {
        List <SwordFrame> swingDesc = Swings[swingIndex];

        SwordFrame f;
        int        prevIndex = -1;

        for (int i = 0; i < swingDesc.Count; ++i)
        {
            f = swingDesc[i];
            if (f.frameTime < swingElapsedTime)
            {
                prevIndex = i;
            }
            else
            {
                break;
            }
        }
        if (prevIndex == -1)
        {
            // erm?
            prevIndex = 0;
        }
        int nextIndex = prevIndex + 1;

        //Debug.Log(string.Format("swing indices {0} {1}", prevIndex, nextIndex));

        if (nextIndex == swingDesc.Count)
        {
            InterpSwordFrames(prevIndex, prevIndex, 0.0f);
        }
        else
        {
            SwordFrame prevFrame = swingDesc[prevIndex];
            SwordFrame nextFrame = swingDesc[nextIndex];

            float deltaTimeBetweenFrames    = nextFrame.frameTime - prevFrame.frameTime;
            float elapsedTimeSinceStartTime = swingElapsedTime - prevFrame.frameTime;
            float fracTime = elapsedTimeSinceStartTime / deltaTimeBetweenFrames;
            //Debug.Log("fracTime: " + fracTime);
            InterpSwordFrames(prevIndex, nextIndex, fracTime);
        }
    }
Example #7
0
    void makeSwings()
    {
        Swings = new List <List <SwordFrame> >();
        List <SwordFrame> leftSwing = new List <SwordFrame>();
        SwordFrame        lsf0      = new SwordFrame();

        lsf0.hiltPos   = new Vector2(1.0f, -1.0f);
        lsf0.tipPos    = new Vector2(2.0f, -1.5f);
        lsf0.frameTime = 0.0f;
        leftSwing.Add(lsf0);
        SwordFrame lsf1 = new SwordFrame();

        lsf1.hiltPos   = new Vector2(1.5f, 0.0f);
        lsf1.tipPos    = new Vector2(2.5f, 0.0f);
        lsf1.frameTime = 0.1f;
        leftSwing.Add(lsf1);
        SwordFrame lsf2 = new SwordFrame();

        lsf2.hiltPos   = new Vector2(1.0f, 1.0f);
        lsf2.tipPos    = new Vector2(2.0f, 1.5f);
        lsf2.frameTime = 0.2f;
        leftSwing.Add(lsf2);
        Swings.Add(leftSwing);

        List <SwordFrame> rightSwing = new List <SwordFrame>();
        SwordFrame        rsf0       = new SwordFrame();

        rsf0.hiltPos   = new Vector2(1.0f, 1.0f);
        rsf0.tipPos    = new Vector2(2.0f, 1.5f);
        rsf0.frameTime = 0.0f;
        rightSwing.Add(rsf0);
        SwordFrame rsf1 = new SwordFrame();

        rsf1.hiltPos   = new Vector2(1.5f, 0.0f);
        rsf1.tipPos    = new Vector2(2.5f, 0.0f);
        rsf1.frameTime = 0.1f;
        rightSwing.Add(rsf1);
        SwordFrame rsf2 = new SwordFrame();

        rsf2.hiltPos   = new Vector2(1.0f, -1.0f);
        rsf2.tipPos    = new Vector2(2.0f, -1.5f);
        rsf2.frameTime = 0.2f;
        rightSwing.Add(rsf2);
        Swings.Add(rightSwing);

        List <SwordFrame> bigSwing = new List <SwordFrame>();
        SwordFrame        bsf0     = new SwordFrame();

        bsf0.hiltPos   = new Vector2(0.0f, 1.0f);
        bsf0.tipPos    = new Vector2(0.0f, 2.0f);
        bsf0.frameTime = 0.0f;
        bigSwing.Add(bsf0);
        SwordFrame bsf1 = new SwordFrame();

        bsf1.hiltPos   = new Vector2(1.3f, 0.5f);
        bsf1.tipPos    = new Vector2(2.5f, 1.5f);
        bsf1.frameTime = 0.05f;
        bigSwing.Add(bsf1);
        SwordFrame bsf2 = new SwordFrame();

        bsf2.hiltPos   = new Vector2(1.5f, 0.0f);
        bsf2.tipPos    = new Vector2(2.5f, 0.0f);
        bsf2.frameTime = 0.1f;
        bigSwing.Add(bsf2);
        SwordFrame bsf3 = new SwordFrame();

        bsf3.hiltPos   = new Vector2(1.3f, -0.5f);
        bsf3.tipPos    = new Vector2(2.5f, -1.5f);
        bsf3.frameTime = 0.15f;
        bigSwing.Add(bsf3);
        SwordFrame bsf4 = new SwordFrame();

        bsf4.hiltPos   = new Vector2(0.0f, -1.0f);
        bsf4.tipPos    = new Vector2(0.0f, -2.0f);
        bsf4.frameTime = 0.2f;
        bigSwing.Add(bsf4);
        Swings.Add(bigSwing);
    }