示例#1
0
    public static void CreatePlayers(int numberOfPlayers)
    {
        players= new PlayerSoul[numberOfPlayers];
        aliens = new GameObject[numberOfPlayers-1];
        spotPlayer = 0;
        PlayerSoul player;
        int numberOfJoys = Input.GetJoystickNames ().Length;
        for (int i=0; i<numberOfPlayers*2;) {
            if(numberOfJoys>i/2){
                Debug.Log("controller");
                player=new PlayerSoul(joyControls[i],joyControls[i+1],colors[i/2],colorLight[i/2],i/2);
            }
            else{
                Debug.Log(i-numberOfJoys*2+","+(i-numberOfJoys*2)+1);
                Debug.Log("keyboard");
                player=new PlayerSoul(controls[i-numberOfJoys*2],controls[(i-numberOfJoys*2)+1],colors[i/2],colorLight[i/2],i/2);

            }
            players[i/2]=player;
            i+=2;

        }
        spotlight=GameObject.Instantiate (spotlight);
        spotlight.GetComponent<lightController>().setPlayer (players [0]);
        for (int i=1; i<numberOfPlayers; i++) {
            aliens[i-1]=(GameObject)GameObject.Instantiate(alien,new Vector3(3-i*2,0,0),alien.transform.rotation);
            aliens[i-1].GetComponent<AlienBoyControls>().setPlayerSoul(players[i]);
        }
    }
示例#2
0
 public void setPlayerSoul(PlayerSoul soul)
 {
     playerSoul = soul;
     //		Debug.Log (soul.color.x);
     GetComponent<Renderer> ().material.SetVector ("_Color", soul.color);
     Material s = GameObject.Find ("Stage").GetComponent<Renderer> ().material;
 }
示例#3
0
    void Start()
    {
        mMaxPressNum   = GameManager.sSingleton.plyRevPressNum;
        mIsP1KeybInput = JoystickManager.sSingleton.IsP1KeybInput;

        mPlayerController = GetComponentInParent <PlayerController>();
        mPlayerID         = mPlayerController.playerID;

        if (GameManager.sSingleton.TotalNumOfPlayer() == 2)
        {
            if (mPlayerID == 1)
            {
                mOtherPlayerTrans = GameManager.sSingleton.player2;
                mOtherPlayerSoul  = mOtherPlayerTrans.GetComponentInChildren <PlayerSoul>();

                // Sometimes ID 1 gets called first. Re-initialize it because the other player was null when first instantiated.
                mOtherPlayerTrans.GetComponentInChildren <ReviveController>().UpdateFillUpImage();
            }
            else if (mPlayerID == 2)
            {
                mOtherPlayerTrans = GameManager.sSingleton.player1;
                mOtherPlayerSoul  = mOtherPlayerTrans.GetComponentInChildren <PlayerSoul>();

                // Sometimes ID 2 gets called first. Re-initialize it because the other player was null when first instantiated.
                mOtherPlayerTrans.GetComponentInChildren <ReviveController>().UpdateFillUpImage();
            }

            mOtherPlayerController = mOtherPlayerTrans.GetComponentInParent <PlayerController>();

            mOtherFillUpImage      = mOtherPlayerSoul.UI_FillUpSoulImage;
            mOtherFillUpSpriteList = mOtherPlayerSoul.GetFillUpSpriteList;
            mOtherSr = mOtherPlayerSoul.GetSr;
        }
    }
示例#4
0
    public static void CreatePlayers(int numberOfPlayers)
    {
        players    = new PlayerSoul[numberOfPlayers];
        aliens     = new GameObject[numberOfPlayers - 1];
        spotPlayer = 0;
        PlayerSoul player;
        int        numberOfJoys = Input.GetJoystickNames().Length;

        for (int i = 0; i < numberOfPlayers * 2;)
        {
            if (numberOfJoys > i / 2)
            {
                Debug.Log("controller");
                player = new PlayerSoul(joyControls[i], joyControls[i + 1], colors[i / 2], colorLight[i / 2], i / 2);
            }
            else
            {
                Debug.Log(i - numberOfJoys * 2 + "," + (i - numberOfJoys * 2) + 1);
                Debug.Log("keyboard");
                player = new PlayerSoul(controls[i - numberOfJoys * 2], controls[(i - numberOfJoys * 2) + 1], colors[i / 2], colorLight[i / 2], i / 2);
            }
            players[i / 2] = player;
            i += 2;
        }
        spotlight = GameObject.Instantiate(spotlight);
        spotlight.GetComponent <lightController>().setPlayer(players [0]);
        for (int i = 1; i < numberOfPlayers; i++)
        {
            aliens[i - 1] = (GameObject)GameObject.Instantiate(alien, new Vector3(3 - i * 2, 0, 0), alien.transform.rotation);
            aliens[i - 1].GetComponent <AlienBoyControls>().setPlayerSoul(players[i]);
        }
    }
示例#5
0
    public void setPlayerSoul(PlayerSoul soul)
    {
        playerSoul = soul;
//		Debug.Log (soul.color.x);
        GetComponent <Renderer> ().material.SetVector("_Color", soul.color);
        Material s = GameObject.Find("Stage").GetComponent <Renderer> ().material;
    }
示例#6
0
 void UpdateFillUpImage()
 {
     if (mOtherPlayerTrans != null)
     {
         mOtherPlayerSoul       = mOtherPlayerTrans.GetComponentInChildren <PlayerSoul>();
         mOtherFillUpImage      = mOtherPlayerSoul.UI_FillUpSoulImage;
         mOtherFillUpSpriteList = mOtherPlayerSoul.GetFillUpSpriteList;
         mOtherSr = mOtherPlayerSoul.GetSr;
     }
 }
示例#7
0
 public bool CheckSoul(PlayerSoul s)
 {
     if ((s == null))
     {
         return(false);
     }
     if (s.PlayerDirection == MoveDirection.None)
     {
         return(false);
     }
     return(true);
 }
示例#8
0
    public GameObject add_player(string player_name, bool localControls = false)
    {
        Debug.Log("Player Connected: " + player_name);
        Vector3    randomPos    = new Vector3(10, UnityEngine.Random.Range(-1f, 1f), 5);
        GameObject playerObject = Instantiate(playerPrefab, randomPos, Quaternion.identity) as GameObject;

        playerObject.name = player_name;

        PlayerSoul playBoi = playerObject.GetComponent <PlayerSoul>();

        players.Add(player_name, playBoi);



        return(playerObject);
    }
示例#9
0
        public void UpdateNextSoul(PlayerSoul s)
        {
            if (CanDoATurn(s.PlayerDirection))
            {
                //Тут анлочимся. так как нужно обойти ситуацию, когда игрок залочился у бетон и повернул сразу в isPassable=false.  и снимаем топор.
                if ((m_MySoul != null))
                {
                    if (m_MySoul.PlayerDirection != s.PlayerDirection)
                    {
                        UnlockMe(Dir);
                        TakeOffAxe();
                    }
                    else
                    {
                        return;
                        //если направление не изменилось, то просто выходим отсюда, без всяких обновлений души
                    }
                }
                if ((m_MySoul != null))
                {
                    LookTo = m_MySoul.PlayerDirection;
                    m_MySoul.Deactivate();
                    m_MySoul = null;
                }



                m_MySoul = s;

                if (LookTo != m_MySoul.PlayerDirection)
                {
                    DirectionChanged = true;
                }
                else
                {
                    DirectionChanged = false;
                }

                LookTo = m_MySoul.PlayerDirection;
                //Quaternion rotation = Quaternion.AngleAxis(0.1f * Time.deltaTime, new Vector3(0.5f, 0.5f ,1f));
                // MyActionChange(EnumMyAction.Move);
                //// применение вращения
                //transform.rotation *= rotation;
            }
        }
示例#10
0
        /// <summary>
        /// Задача для человечка. Исполняет действие которое пришло сюда. Исполняет если только человек получчает Tick.
        /// done: надо сделать поддержку очереди команд. Проверять каждый тик, есть ли новая душа. Проверять может ли душа применится
        /// с помощью алгоритма CanDoATurn.
        /// </summary>
        /// <param name="s"></param>
        /// <remarks></remarks>
        public void InsertSoul(PlayerSoul s)
        {
            PrevDir = Dir;
            Dir     = s.PlayerDirection;

            if (!CheckSoul(s))
            {
                s        = null;
                NextSoul = null;
                if ((m_MySoul != null))
                {
                    m_MySoul.Deactivate();
                    m_MySoul = null;
                }

                return;
            }

            NextSoul = s;
        }
示例#11
0
 private void Start()
 {
     anim       = transform.parent.GetComponentInChildren <Animator>();
     playerSoul = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerSoul>();
 }
示例#12
0
    //[Range (0, 3.6f)]
    //public float collisionOffsetFromTop;

    // Use this for initialization
    void Start()
    {
        soul = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerSoul> ();
    }
示例#13
0
 public void setPlayer(PlayerSoul ps)
 {
     player = ps;
     GetComponent <Light> ().color = ps.colorLight;
 }
示例#14
0
 public void setPlayer(PlayerSoul ps)
 {
     player=ps;
     GetComponent<Light> ().color=ps.colorLight;
 }
示例#15
0
    void Start()
    {
        mIsP1KeybInput = JoystickManager.sSingleton.IsP1KeybInput;

        if (playerID == 1)
        {
            mJoystick = JoystickManager.sSingleton.p1_joystick;
        }
        else if (playerID == 2)
        {
            mJoystick = JoystickManager.sSingleton.p2_joystick;
        }

        if (GameManager.sSingleton.TotalNumOfPlayer() == 2)
        {
            if (playerID == 1)
            {
                mOtherPlayerTrans = GameManager.sSingleton.player2;
            }
            else
            {
                mOtherPlayerTrans = GameManager.sSingleton.player1;
            }

            mOtherPlayerController = mOtherPlayerTrans.GetComponent <PlayerController> ();
        }

        mDefaultMoveSpeed = moveSpeed;
        mPlayerSize       = GetComponentInChildren <Renderer>().bounds.size;
        anim = GetComponentInChildren <Animator>();

        // Here is the definition of the boundary in world point
        float distance = (transform.position - Camera.main.transform.position).z;

        border.left   = Camera.main.ViewportToWorldPoint(new Vector3(0.18f, 0, distance)).x + (mPlayerSize.x / 2);
        border.right  = Camera.main.ViewportToWorldPoint(new Vector3(0.82f, 0, distance)).x - (mPlayerSize.x / 2);
        border.top    = Camera.main.ViewportToWorldPoint(new Vector3(0, 1, distance)).y - (mPlayerSize.y / 2);
        border.bottom = Camera.main.ViewportToWorldPoint(new Vector3(0, 0, distance)).y + (mPlayerSize.y / 2);

        float autoCollect_Y = GameManager.sSingleton.autoCollectPickUp_Y;

        border.autoCollect = Camera.main.ViewportToWorldPoint(new Vector3(0, autoCollect_Y, distance)).y - (mPlayerSize.y / 2);

        mResetPos.x = Camera.main.ViewportToWorldPoint(new Vector3(respawnXPos, 0, distance)).x;
        mResetPos.y = Camera.main.ViewportToWorldPoint(new Vector3(0, 0, distance)).y - (mPlayerSize.y / 2);

        mP1DefaultPos = GameManager.sSingleton.p1DefaultPos.position;
        mP2DefaultPos = GameManager.sSingleton.p2DefaultPos.position;

        sr              = charImageRenderer;
        mAttackPattern  = GetComponent <AttackPattern>();
        mBombController = GetComponent <BombController>();

        if (soulTrans != null)
        {
            mPlayerSoul = soulTrans.GetComponent <PlayerSoul>();
        }

        for (int i = 0; i < totalCoroutine; i++)
        {
            mIsCoroutineList.Add(false);
        }

        life = GameManager.sSingleton.plyStartLife;
        bomb = GameManager.sSingleton.plyStartBomb;

        UIManager.sSingleton.UpdatePower(playerID, powerLevel, maxPowerLevel);
        if (GameManager.sSingleton.TotalNumOfPlayer() == 2)
        {
            UIManager.sSingleton.UpdateLinkBar(playerID, linkValue);
        }

        mFairy = mAttackPattern.secondaryAttackType;

        mBrokenHeartPS = Instantiate(GameManager.sSingleton.brokenHeartPS, Vector3.zero, GameManager.sSingleton.brokenHeartPS.transform.rotation);
        mRevivedPS     = Instantiate(GameManager.sSingleton.revivedPS, Vector3.zero, Quaternion.identity);
        mDeathPS       = Instantiate(GameManager.sSingleton.deathPS, Vector3.zero, Quaternion.identity);

        mLinkFlame = Instantiate(GameManager.sSingleton.linkFlamePS, Vector3.zero, Quaternion.identity);
        mLinkFlame.transform.position = UIManager.sSingleton.GetLinkBarPos(playerID - 1);
        mLinkFlame.gameObject.SetActive(false);
    }
示例#16
0
 private void Start()
 {
     playerSoul  = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerSoul>();
     outerDetect = transform.parent.GetComponentInChildren <OuterDetect>();
 }