Пример #1
0
    // Update is called once per frame
    new protected void FixedUpdate()
    {
        if (InputToken == null)
        {
            base.FixedUpdate();
            return;
        }
        if (Disabled)
        {
            base.FixedUpdate();
            HMomentum *= .8f;
            return;
        }

        InputSnapshot input = InputToken.GetSnapshot();
        var           data  = SimulateFrame(input, cyoteTime);

        cyoteTime = data.cyoteTime;
        if (data.jumpConsumed)
        {
            InputToken.ConsumeJump();
        }
        foreach (var tech in GetComponents <IPlatformingTechnique>())
        {
            if (tech.Enabled)
            {
                data = tech.SimulateFrame(InputToken.GetSnapshot(), cyoteTime);
                if (data.jumpConsumed)
                {
                    InputToken.ConsumeJump();
                }
                cyoteTime = data.cyoteTime;
            }
        }
    }
Пример #2
0
 void SaveSnapshot()
 {
     snapshothead++;
     snapshothead         %= 60;
     history[snapshothead] = new PlatformingCharacterSnapshot()
     {
         input     = InputToken.GetSnapshot(),
         momentum  = new Vector2(HMomentum, VMomentum),
         cyoteTime = cyoteTime,
         position  = transform.position,
     };
 }