コード例 #1
0
ファイル: playerMovement.cs プロジェクト: SlightlyObscure/MGA
    // Update is called once per frame
    void Update()
    {
        carVals vals = this.transform.GetComponent <carVals>();

        if (Input.GetKey("a") && (vals.curLane > 1 || vals.isSwitching))
        {
            if (!vals.isSwitching)
            {
                this.transform.GetComponent <carVals>().destLane -= 1;
            }
            else if (vals.destLane > vals.curLane)
            {
                this.transform.GetComponent <carVals>().destLane      -= 1;
                this.transform.GetComponent <carVals>().switchIsCancel = true;
            }
        }
        else if (Input.GetKey("d") && (vals.curLane < 3 || vals.isSwitching))
        {
            if (!vals.isSwitching)
            {
                this.transform.GetComponent <carVals>().destLane += 1;
            }
            else if (vals.destLane < vals.curLane)
            {
                this.transform.GetComponent <carVals>().destLane      += 1;
                this.transform.GetComponent <carVals>().switchIsCancel = true;
            }
        }

        if (!this.transform.GetComponent <carMovement>().lockMove)
        {
            zMove(Input.GetKey("w"), true, accSpeed, accStart, accMax, accSpeedUpMod, accSlowDownMod, 1);

            zMove(Input.GetKey("s"), false, brkSpeed, brkStart, brkMax, brkSpeedUpMod, brkSlowDownMod, -1);
        }
    }
コード例 #2
0
    // Update is called once per frame
    void Update()
    {
        if (!lockMove)
        {
            carVals vals = this.transform.GetComponent <carVals>();

            if (!vals.isSwitching)
            {
                if (vals.curLane != vals.destLane)
                {
                    //Debug.Log("change lane");

                    if (vals.curLane < vals.destLane)
                    {
                        this.transform.GetComponent <carVals>().switchDir = 1;
                    }
                    else
                    {
                        this.transform.GetComponent <carVals>().switchDir = -1;
                    }
                    this.transform.GetComponent <carVals>().isSwitching = true;
                }
            }
            else
            {
                if (vals.switchIsCancel)
                {
                    //Debug.Log("calcel switch");
                    this.transform.GetComponent <carVals>().curLane   += vals.switchDir;
                    this.transform.GetComponent <carVals>().switchDir *= -1;
                    switchProg = laneWidth.x - switchProg;
                    speed      = startSpeed;

                    this.transform.GetComponent <carVals>().switchIsCancel = false;
                }

                if (switchProg <= laneWidth.x)
                {
                    if ((switchProg / laneWidth.x) < 0.8)
                    {
                        if (speed < speedMax)
                        {
                            speed *= 1 + (speedUpMod * Time.deltaTime);
                        }
                    }
                    else
                    {
                        if (speed > speedMin && (switchProg / laneWidth.x) < 0.95)
                        {
                            speed *= 1 - (speedUpMod * slowDownMod * Time.deltaTime);
                        }
                        else if (speed > 0.1f && (switchProg / laneWidth.x) > 0.95)
                        {
                            speed *= 1 - (speedUpMod * slowDownMod * Time.deltaTime);
                        }
                    }
                    Vector3 moveDist = laneWidth * vals.switchDir * speed * Time.deltaTime;
                    transform.position += moveDist;
                    switchProg         += Math.Abs(moveDist.x);
                    //Debug.Log(switchProg);
                }
                else
                {
                    transform.position += new Vector3((switchProg - laneWidth.x), 0.0f, 0.0f) * -vals.switchDir;
                    switchProg          = 0;
                    speed = startSpeed;
                    this.transform.GetComponent <carVals>().isSwitching = false;
                    this.transform.GetComponent <carVals>().curLane     = vals.destLane;

                    //Debug.Log("prog: " + switchProg);
                    //Debug.Log("diff: " + (switchProg - laneWidth.x));
                    //Debug.Log("pos: " + transform.position.x);
                }
            }
        }
    }