コード例 #1
0
    private void swapHelper(GameObject CannonballGO)
    {
        inSwitch             = true;
        CannonControl.freeze = true;
        PlayerControl.freeze = true;

        // Destroy all cannonballs when runner is killed
        var cannonBalls = GameObject.FindGameObjectsWithTag("Projectile");

        for (var i = 0; i < cannonBalls.Length; i++)
        {
            Destroy(cannonBalls [i]);
        }

        Debug.Log("OnCollisionEnter" + Time.time);
        // Debug.Log (InputManager.S.getDebugPlayerNum () + " " + PlayerControl.S.controller);
        // swaps the player controlling the cannon
        InputManager.ControlID cID         = CannonballGO.GetComponent <CannonBallMetadata>().controllerThatFired();
        InputManager.PlayerID  newRunnerID = InputManager.S.getPlayerIDWithControlID(cID);
        InputManager.PlayerID  oldRunnerID = InputManager.S.getCurrentRunnerID();

        InputManager.PlayerColor newColor = InputManager.S.getPlayerColorWithPlayerID(newRunnerID);
        InputManager.PlayerColor oldColor = InputManager.S.getPlayerColorWithPlayerID(oldRunnerID);


        //Debug.Log("NEW" + newRunnerID);
        //Debug.Log("OLD" + oldRunnerID);


        //swaps the material of the player - CHANGED TO SWAP SPRITE
        //Material runnerMaterial = new Material (runner.GetComponent<SpriteRenderer> ().material);
        //setMaterial(collision.gameObject.GetComponent<CannonBallMetadata> ().getCannonControlMaterial ());
        //collision.gameObject.GetComponent<CannonBallMetadata> ().setCannonControlMaterial (runnerMaterial);

        //change color of cannon

        /*
         *      switch(oldRunnerID) { //old runner becomes new cannon
         *      case InputManager.PlayerID.Player1:
         *              CannonballGO.GetComponent<CannonBallMetadata>().setCannonControlMaterial(player1Material); //r
         *              break;
         *      case InputManager.PlayerID.Player2:
         *              CannonballGO.GetComponent<CannonBallMetadata>().setCannonControlMaterial(player2Material); //b
         *              break;
         *      case InputManager.PlayerID.Player3:
         *              CannonballGO.GetComponent<CannonBallMetadata>().setCannonControlMaterial(player3Material); //g
         *              break;
         *      case InputManager.PlayerID.Player4:
         *              CannonballGO.GetComponent<CannonBallMetadata>().setCannonControlMaterial(player4Material); //y
         *              break;
         *      }*/

        //change color of cannon
        switch (oldColor)
        {                                                                                               //old runner becomes new cannon
        case InputManager.PlayerColor.Red:
            CannonballGO.GetComponent <CannonBallMetadata>().setCannonControlMaterial(player1Material); //r
            break;

        case InputManager.PlayerColor.Blue:
            CannonballGO.GetComponent <CannonBallMetadata>().setCannonControlMaterial(player2Material);    //b
            break;

        case InputManager.PlayerColor.Green:
            CannonballGO.GetComponent <CannonBallMetadata>().setCannonControlMaterial(player3Material);    //g
            break;

        case InputManager.PlayerColor.Yellow:
            CannonballGO.GetComponent <CannonBallMetadata>().setCannonControlMaterial(player4Material);    //y
            break;
        }

        /*
         * switch (newRunnerID) { //old runner becomes new cannon
         *      case InputManager.PlayerID.Player1:
         *              RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.RED;
         *              break;
         *      case InputManager.PlayerID.Player2:
         *              RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.BLUE;
         *              break;
         *      case InputManager.PlayerID.Player3:
         *              RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.GREEN;
         *              break;
         *      case InputManager.PlayerID.Player4:
         *              RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.YELLOW;
         *              break;
         *      }*/

        switch (newColor)
        { //old runner becomes new cannon
        case InputManager.PlayerColor.Red:
            RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.RED;
            break;

        case InputManager.PlayerColor.Blue:
            RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.BLUE;
            break;

        case InputManager.PlayerColor.Green:
            RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.GREEN;
            break;

        case InputManager.PlayerColor.Yellow:
            RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.YELLOW;
            break;
        }

        //Debug.Log (cID);
        //Debug.Log (oldRunnerID);
        //Debug.Log (newRunnerID);

        switch (cID)
        {
        case InputManager.ControlID.Cannon1:
            /*
             *      switch (oldRunnerID) { //old runner becomes new cannon
             *      case InputManager.PlayerID.Player1:
             *              cannon1Sprite.GetComponent<SpriteRenderer>().sprite = p1;
             *              break;
             *      case InputManager.PlayerID.Player2:
             *              cannon1Sprite.GetComponent<SpriteRenderer>().sprite = p2;
             *              break;
             *      case InputManager.PlayerID.Player3:
             *              cannon1Sprite.GetComponent<SpriteRenderer>().sprite = p3;
             *              break;
             *      case InputManager.PlayerID.Player4:
             *              cannon1Sprite.GetComponent<SpriteRenderer>().sprite = p4;
             *              break;
             *      }
             *      break;*/

            switch (oldColor)
            {                                                              //old runner becomes new cannon
            case InputManager.PlayerColor.Red:
                cannon1Sprite.GetComponent <SpriteRenderer>().sprite = p1; //r
                break;

            case InputManager.PlayerColor.Blue:
                cannon1Sprite.GetComponent <SpriteRenderer>().sprite = p2;        //b
                break;

            case InputManager.PlayerColor.Green:
                cannon1Sprite.GetComponent <SpriteRenderer>().sprite = p3;        //g
                break;

            case InputManager.PlayerColor.Yellow:
                cannon1Sprite.GetComponent <SpriteRenderer>().sprite = p4;        //y
                break;
            }
            break;

        case InputManager.ControlID.Cannon2:
            /*
             *      switch (oldRunnerID) { //old runner becomes new cannon
             *      case InputManager.PlayerID.Player1:
             *              cannon2Sprite.GetComponent<SpriteRenderer>().sprite = p1;
             *              break;
             *      case InputManager.PlayerID.Player2:
             *              cannon2Sprite.GetComponent<SpriteRenderer>().sprite = p2;
             *              break;
             *      case InputManager.PlayerID.Player3:
             *              cannon2Sprite.GetComponent<SpriteRenderer>().sprite = p3;
             *              break;
             *      case InputManager.PlayerID.Player4:
             *              cannon2Sprite.GetComponent<SpriteRenderer>().sprite = p4;
             *              break;
             *      }
             *      break;*/
            switch (oldColor)
            {     //old runner becomes new cannon
            case InputManager.PlayerColor.Red:
                cannon2Sprite.GetComponent <SpriteRenderer>().sprite = p1;
                break;

            case InputManager.PlayerColor.Blue:
                cannon2Sprite.GetComponent <SpriteRenderer>().sprite = p2;
                break;

            case InputManager.PlayerColor.Green:
                cannon2Sprite.GetComponent <SpriteRenderer>().sprite = p3;
                break;

            case InputManager.PlayerColor.Yellow:
                cannon2Sprite.GetComponent <SpriteRenderer>().sprite = p4;
                break;
            }
            break;

        case InputManager.ControlID.Cannon3:
            /*
             *      switch (oldRunnerID) { //old runner becomes new cannon
             *      case InputManager.PlayerID.Player1:
             *              cannon3Sprite.GetComponent<SpriteRenderer>().sprite = p1_l;
             *              break;
             *      case InputManager.PlayerID.Player2:
             *              cannon3Sprite.GetComponent<SpriteRenderer>().sprite = p2_l;
             *              break;
             *      case InputManager.PlayerID.Player3:
             *              cannon3Sprite.GetComponent<SpriteRenderer>().sprite = p3_l;
             *              break;
             *      case InputManager.PlayerID.Player4:
             *              cannon3Sprite.GetComponent<SpriteRenderer>().sprite = p4_l;
             *              break;
             *      }
             *      break;*/
            switch (oldColor)
            {     //old runner becomes new cannon
            case InputManager.PlayerColor.Red:
                cannon3Sprite.GetComponent <SpriteRenderer>().sprite = p1_l;
                break;

            case InputManager.PlayerColor.Blue:
                cannon3Sprite.GetComponent <SpriteRenderer>().sprite = p2_l;
                break;

            case InputManager.PlayerColor.Green:
                cannon3Sprite.GetComponent <SpriteRenderer>().sprite = p3_l;
                break;

            case InputManager.PlayerColor.Yellow:
                cannon3Sprite.GetComponent <SpriteRenderer>().sprite = p4_l;
                break;
            }
            break;
        }

        //change sprite related to cannon
        //setSprite()

        //change cat
        //change cat depending on new playerid
        Vector3 dir = Vector3.zero;

        Debug.Log("CURR DIRECTION: " + gameObject.GetComponent <Rigidbody>().velocity);
        setSprite(RunnerAnimation.R.getSprite(newRunnerID, dir));


        InputManager.S.swapPlayer(cID);
        timeLastSwap = Time.time;
    }
コード例 #2
0
 public void setMetadata(InputManager.ControlID cID, CannonControl cc)
 {
     _fired_from_control_id = cID;
     _cc = cc;
 }