Наследование: MonoBehaviour
Пример #1
0
 public CrossGate()
 {
     Player = new Role(this);
     SpeedFight = new SpeedFight(this);
     SpeedUp = new SpeedUp(this);
     Movement = new Movement(this);
     Bag = new Bag(this);
     Calls = new Calls(this);
     AutoFight = new AutoFight(this);
     FuntionThread = new FuntionThread(this);
     Pet = new Pet[5] { new Pet(this, 0), new Pet(this, 1), new Pet(this, 2), new Pet(this, 3), new Pet(this, 4) };
     Scripts = new Scripts(this);
 }
Пример #2
0
 public PowerUp getPowerUp(PowerUpList chosenPowerUpID)
 {
     PowerUp chosenPowerUp = null;
     switch (chosenPowerUpID) {
     case PowerUpList.SlowDown:
         chosenPowerUp = new SlowDown(10);
         break;
     case PowerUpList.SpeedUp:
         chosenPowerUp = new SpeedUp(10);
         break;
     case PowerUpList.Warp:
         chosenPowerUp = new Warp(10);
         break;
     case PowerUpList.IceyPlayer:
         chosenPowerUp = new IceyPlayer(10);
         break;
     case PowerUpList.ObjectSpawnPowerUp:
         chosenPowerUp = new ObjectSpawnPowerUp(10);
         break;
     case PowerUpList.Pull:
         chosenPowerUp = new Pull(10);
         break;
     case PowerUpList.Push:
         chosenPowerUp = new Push(10);
         break;
     case PowerUpList.Bigger:
         chosenPowerUp = new Bigger(10);
         break;
     case PowerUpList.Smaller:
         chosenPowerUp = new Smaller(10);
         break;
     case PowerUpList.OrbitingShield:
         chosenPowerUp = new OrbitingShield(10);
         break;
     }
     return chosenPowerUp;
 }
Пример #3
0
 public void generateBonus()
 {
     if (bonus.Count < maxBonus)
     {
         if (random.Next(0, 80 + (int)(distance / 1000 * 0.05f * 80)) == 10)
         {
             Bonus newBonus;
             int rand = random.Next(0, 11);
             if (rand < 3)
             {
                 newBonus = new MediKit(size_window, this);
             }
             else if(rand < 6)
             {
                 newBonus = new Invulnerability(size_window, this);
             }
             else if (rand < 8)
             {
                 newBonus = new SpeedDown(size_window, this);
             }
             else if (rand < 10)
             {
                 newBonus = new SpeedUp(size_window, this);
             }
             else
             {
                 newBonus = new GameJam(size_window, this);
             }
             newBonus.LoadContent(content);
             Vector2 pos = new Vector2((int)size_window.X, random.Next(70, (int)(size_window.Y - newBonus.texture.Height - 70)));
             newBonus.position = pos;
             bonus.Add(newBonus);
         }
     }
 }
Пример #4
0
    //public override Item getItemObject(Player player) {
    //    SpeedUp.print("generate SpeedUp Item");
    //    Item item = new SpeedUpItem(player);
    //    return item;
    //}

    public override string getItemObject()
    {
        SpeedUp.print("generate SpeedUp Item");
        return("SpeedUpItem");
    }
Пример #5
0
 void Awake()
 {
     _instance = this;
 }
Пример #6
0
    // Use this for initialization
    void Start()
    {
        bGameStart      = false;        // 最初は処理しない
        bKami           = false;
        CameraChangeFlg = false;

        // スクリプトの取得
        PuzzleMain_cs  = GameObject.Find("PuzzleMain").GetComponent <PuzzleMain>();
        Playerspown_cs = GameObject.Find("Playerspown").GetComponent <playerspown>();
        switch (StageNumber)
        {
        case 1:
            Enemyspown_1_cs = GameObject.Find("EnemySpown").GetComponent <EnemySpown_S1>();
            EnemyCnt        = 5;
            break;

        case 2:
            Enemyspown_2_cs = GameObject.Find("EnemySpown").GetComponent <EnemySpown_S2>();
            EnemyCnt        = 6;
            break;

        case 3:
            Enemyspown_3_cs = GameObject.Find("EnemySpown").GetComponent <EnemySpown_S3>();
            EnemyCnt        = 10;
            break;

        case 4:
            Enemyspown_4_cs = GameObject.Find("EnemySpown").GetComponent <EnemySpown_S4>();
            EnemyCnt        = 3;
            break;

        case 5:
            Enemyspown_5_cs = GameObject.Find("EnemySpown").GetComponent <EnemySpown_S5>();
            EnemyCnt        = 6;
            break;
        }
        Pause_cs   = GameObject.Find("Pause").GetComponent <Pause> ();
        SpeedUp_cs = GameObject.Find("SpeedUp").GetComponent <SpeedUp> ();

        // リスト作成
        Player_csList = new List <Player>();
        Enemy_csList  = new List <Enemy>();


        //音のロード
        Sound.LoadSe("SE_Mis", "Mis_SE");
        Sound.LoadSe("SE_Hit", "Hit_SE");
        Sound.LoadSe("loose", "SE_Lose");
        Sound.LoadSe("SlideMove", "SE_PuzzleMove");
        Sound.LoadBgm("Stage_BGM", "GAME_BGM");
        Sound.LoadSe("Clear", "SE_clear");
        Sound.LoadSe("Attention", "SE_Attention");
        Sound.LoadSe("Signal", "SE_Signal");
        Sound.LoadSe("Start", "SE_Start");
        Sound.LoadSe("Boko", "SE_Boko");
        Sound.LoadSe("tetele", "SE_tetele");
        Sound.LoadSe("MeFly", "SE_MeFly");
        //Sound.PlaySe ("Fly");]

        EnemyEndFlg  = false;
        PlayerEndFlg = false;
    }
    void SetupGame(Boolean reset)
    {
        // Reset the game if the user goes back to the main menu, else advance to the next level.
        if (reset)
        {
            died = false;
            won  = false;
            playerObject.Reset(true);

            if (level < 3)
            {
                ghost1.Reset(true);
            }
            else if (level < 5)
            {
                ghost1.Reset(true);
                ghost2.Reset(true);

                ghost2.gameObject.SetActive(false);
            }
            else if (level < 7)
            {
                ghost1.Reset(true);
                ghost2.Reset(true);
                ghost3.Reset(true);

                ghost2.gameObject.SetActive(false);
                ghost3.gameObject.SetActive(false);
            }
            else
            {
                ghost1.Reset(true);
                ghost2.Reset(true);
                ghost3.Reset(true);
                ghost4.Reset(true);

                ghost2.gameObject.SetActive(false);
                ghost3.gameObject.SetActive(false);
                ghost4.gameObject.SetActive(false);
            }
            level = 1;
        }
        else
        {
            level++;
            won  = false;
            died = false;
            playerObject.Reset(false);

            if (level == 3)
            {
                ghost2.gameObject.SetActive(true);
                ghost2.Start();
            }
            else if (level == 5)
            {
                ghost3.gameObject.SetActive(true);
                ghost3.Start();
            }
            else if (level == 7)
            {
                ghost4.gameObject.SetActive(true);
                ghost4.Start();
            }

            if (level < 3)
            {
                ghost1.Reset(false);
            }
            else if (level < 5)
            {
                ghost1.Reset(false);
                ghost2.Reset(false);
            }
            else if (level < 7)
            {
                ghost1.Reset(false);
                ghost2.Reset(false);
                ghost3.Reset(false);
            }
            else
            {
                ghost1.Reset(false);
                ghost2.Reset(false);
                ghost3.Reset(false);
                ghost4.Reset(false);
            }
        }


        foreach (var pellet in pellets)
        {
            Pellet pelletObject = pellet.GetComponent <Pellet>();
            pelletObject.Start();
        }

        foreach (var powerup in powerups)
        {
            Powerup powerupObject = powerup.GetComponent <Powerup>();
            powerupObject.Start();
        }

        foreach (var speedup in speedups)
        {
            SpeedUp speedupObject = speedup.GetComponent <SpeedUp>();
            speedupObject.Start();
        }

        foreach (var doublepoint in doublepoints)
        {
            DoublePoints doublepointObject = doublepoint.GetComponent <DoublePoints>();
            doublepointObject.Start();
        }
    }
Пример #8
0
    void ServerEvent(ClientSyncEvent _event)
    {
        //Debug.Log("animId : " + _event.animId + "  送出的 ID : " + _event.connectionId + " MYID : " + MyID + " : " + AllPlayerControl.Count);
        if (_event.animId == 0)
        {
            #region 建立角色
            PlayerControl control = null;

            if (AllPlayerControl.ContainsKey(_event.connectionId))
            {
                control = AllPlayerControl[_event.connectionId];
            }
            else
            {
                control = Instantiate <PlayerControl>(PlayerControlPrefab);
                control.gameObject.name = "PlayerID : " + _event.connectionId;

                if (_event.connectionId == MyID)
                {
                    control.InitInput();
                }

                control.ModelType = _event.isLucky ? PlayerControl.PlayerType.Cat : PlayerControl.PlayerType.Ghost;

                control.InitPoint(_event.mapping);

                AllPlayerControl.Add(_event.connectionId, control);
            }

            //建立 場上還沒出來的角色
            GameObject model = null;

            if (AllPlayer.ContainsKey(_event.connectionId))
            {
                model = AllPlayer[_event.connectionId].gameObject;
            }
            else
            {
                model = PlayerLoader.Instance.CreatePlayer(_event.catId);
            }

            if (model != null && control != null)
            {
                control.ConnectionId     = _event.connectionId;
                control.ControlModel     = model;
                control.ModelType        = _event.isLucky ? PlayerControl.PlayerType.Cat : PlayerControl.PlayerType.Ghost;
                control.gameObject.layer = LayerMask.NameToLayer("Ignore Raycast");

                model.transform.SetParent(control.transform, false);
                model.transform.localPosition = Vector3.zero;

                var player = model.GetComponent <Player>();
                control.ModelControl   = player;
                control.NowControlType = PlayerControl.ControlType.Move;

                if (AllPlayer.ContainsKey(_event.connectionId) == false)
                {
                    AllPlayer.Add(_event.connectionId, player);
                }

                player.ChangeModel(control.ModelType);
            }
            #endregion
        }

        //每次 Send 都會檢查
        if (_event.animId != 0 && AllPlayerControl.ContainsKey(_event.connectionId) && AllPlayer.ContainsKey(_event.connectionId))
        {
            int nowCatID = -1;

            #region 檢查 交替
            //尋找目前場上的貓
            foreach (var player in AllPlayerControl)
            {
                if (player.Value.ModelType == PlayerControl.PlayerType.Cat)
                {
                    nowCatID = player.Key;
                    break;
                }
            }

            int newCatID = _event.isLucky ? _event.connectionId : nowCatID;

            bool isChange = nowCatID != newCatID;

            //if (isChange)
            //    Debug.Log("目前的貓ID : " + nowCatID + "  新貓ID : " + _event.connectionId + " MYID : " + MyID);

            if (isChange)
            {
                PlayerControl newCatControl = AllPlayerControl[_event.connectionId];
                PlayerControl nowCatControl = AllPlayerControl[nowCatID];

                {
                    #region 鬼 => 貓
                    //讓貓繼承 原本的路徑方向 繼續跑
                    Vector3 catPos     = nowCatControl.transform.position;
                    Vector3 catforward = nowCatControl.transform.forward;

                    if (nowCatControl.IsAI && nowCatControl.gameObject.activeInHierarchy)
                    {
                        nowCatControl.gameObject.SetActive(false);
                        AllPlayerControl.Remove(-1);
                    }

                    //讓鬼 接著貓的路徑繼續奔跑
                    newCatControl.ModelType          = PlayerControl.PlayerType.Cat;
                    newCatControl.transform.position = catPos;
                    newCatControl.transform.forward  = catforward;
                    newCatControl.ChangeCD           = Time.time + 3f;

                    AllPlayer[newCatID].ChangeModel(PlayerControl.PlayerType.Cat);

                    ShowDieEffect.Instance.CatShowDieEffect(newCatControl.transform);
                    #endregion
                }

                {
                    #region 貓 => 鬼
                    if (nowCatControl.IsAI == false)
                    {
                        nowCatControl.transform.position = _event.running;
                        nowCatControl.transform.forward  = _event.runningForward;

                        nowCatControl.ModelType = PlayerControl.PlayerType.Ghost;
                        nowCatControl.InitPoint(_event.mapping - 1);
                        nowCatControl.NowControlType = PlayerControl.ControlType.Move;

                        AllPlayer[nowCatID].ChangeModel(PlayerControl.PlayerType.Ghost);
                    }
                    #endregion
                }

                #endregion
            }
        }

        if (_event.animId == 1)
        {
            if (AllPlayerControl.ContainsKey(_event.connectionId) && AllPlayer.ContainsKey(_event.connectionId))
            {
                AllPlayer[_event.connectionId].Turn();

                AllPlayerControl[_event.connectionId].NowControlType = PlayerControl.ControlType.Move;
                AllPlayerControl[_event.connectionId].Clockwise      = _event.mapping == 1;

                if (_event.runningForward != Vector3.zero)
                {
                    AllPlayerControl[_event.connectionId].transform.forward = _event.runningForward;
                }
            }
        }

        if (_event.animId == 2)
        {
            if (AllPlayerControl.ContainsKey(_event.connectionId) && AllPlayer.ContainsKey(_event.connectionId))
            {
                AllPlayer[_event.connectionId].Move();

                if (_event.connectionId != MyID)
                {
                    AllPlayerControl[_event.connectionId].NowControlType = PlayerControl.ControlType.Rotate;
                }
            }
        }

        if (_event.animId == 3)
        {
            if (AllPlayerControl.ContainsKey(_event.connectionId) && AllPlayer.ContainsKey(_event.connectionId))
            {
                if (_event.isLucky)
                {
                    AllPlayerControl[_event.connectionId].transform.position = _event.running;
                    AllPlayerControl[_event.connectionId].transform.forward  = _event.runningForward;

                    SpeedUp.Attach(AllPlayerControl[_event.connectionId].gameObject);
                }
                else
                {
                    if (_event.connectionId != MyID)
                    {
                        AllPlayer[_event.connectionId].Attack();

                        AllPlayerControl[_event.connectionId].OBTimer         = _event.fvaule;
                        AllPlayerControl[_event.connectionId].RunFinalPoint   = _event.running;
                        AllPlayerControl[_event.connectionId].NowControlType  = PlayerControl.ControlType.Run;
                        AllPlayerControl[_event.connectionId].TargetMoveIndex = _event.mapping;
                    }
                }
            }
        }

        if (_event.animId == 4)
        {
            //鬼的判定
            if (_event.isLucky == false)
            {
                AllPlayerControl[_event.connectionId].NowControlType = PlayerControl.ControlType.ReadyRun;
            }
            else
            {
                AllPlayerControl[_event.connectionId].NowControlType = PlayerControl.ControlType.Rotate;
            }

            AllPlayerControl[_event.connectionId].GhostRotateVal = _event.fvaule;

            if (_event.running != Vector3.zero)
            {
                AllPlayerControl[_event.connectionId].transform.position = _event.running;
            }

            if (_event.runningForward != Vector3.zero)
            {
                AllPlayerControl[_event.connectionId].transform.forward = _event.runningForward;
            }

            AllPlayerControl[_event.connectionId].RandomF = _event.mapping == 1;

            AllPlayerControl[_event.connectionId].CacheForward = AllPlayerControl[_event.connectionId].transform.forward;
            AllPlayerControl[_event.connectionId].CacheRight   = AllPlayerControl[_event.connectionId].transform.right;
        }
    }
Пример #9
0
        /// <param name="win">Окно управления</param>
        public Controller(Control win)
        {
            Form main = win.FindForm();

            win.MouseDown += (s, e) =>
            {
                switch (e.Button)
                {
                case MouseButtons.Left:
                    _isLeftMouseDown     = true;
                    CurrentMousePosition = new Point(e.X, e.Y);
                    break;

                case MouseButtons.Right:
                    _isRightMouseDown    = true;
                    CurrentMousePosition = new Point(e.X, e.Y);
                    break;

                case MouseButtons.Middle:
                    _isMiddleMouseDown   = true;
                    CurrentMousePosition = new Point(e.X, e.Y);
                    break;
                }
            };
            win.MouseUp += (s, e) =>
            {
                switch (e.Button)
                {
                case MouseButtons.Left:
                    _isLeftMouseDown = false;
                    break;

                case MouseButtons.Right:
                    _isRightMouseDown = false;
                    break;

                case MouseButtons.Middle:
                    _isMiddleMouseDown = false;
                    break;
                }
            };
            win.MouseMove += (s, e) =>
            {
                CursorPositionChanged?.Invoke(e.X, e.Y);
                // определить обработку только одной кнопки мыши
                if (_isLeftMouseDown)
                {
                    ShiftByPixel?.Invoke(e.X - CurrentMousePosition.X, e.Y - CurrentMousePosition.Y);
                    CurrentMousePosition = new Point(e.X, e.Y);
                }
                else if (_isMiddleMouseDown)
                {
                    main.Location = new Point(main.Location.X + e.X - CurrentMousePosition.X, main.Location.Y + e.Y - CurrentMousePosition.Y);
                }
            };
            win.MouseWheel += (s, e) =>
            {
                if (e.Delta > 0)
                {
                    ZoomIn?.Invoke(e.X, e.Y);
                }
                else
                {
                    ZoomOut?.Invoke(e.X, e.Y);
                }
            };
            win.KeyUp += (s, e) =>
            {
                Console.WriteLine(e.KeyValue);
                // нажатия на цифру и
                // ЛКМ - уменьшение параметра
                // ПКМ - увеличение параметра
                if (e.KeyValue > 48 && e.KeyValue < 58)
                {
                    if (_isLeftMouseDown)
                    {
                        ParameterReduced?.Invoke(e.KeyValue - 48);
                    }
                    if (_isRightMouseDown)
                    {
                        ParameterIncreased?.Invoke(e.KeyValue - 48);
                    }
                }
                switch ((HotKeys)e.KeyCode)
                {
                case HotKeys.SpeedDown:
                    SpeedDown?.Invoke();
                    break;

                case HotKeys.SpeedUp:
                    SpeedUp?.Invoke();
                    break;

                case HotKeys.StopPlay:
                    StopPlay?.Invoke();
                    break;

                case HotKeys.Statistic:
                    StatisticModeChange?.Invoke();
                    break;

                case HotKeys.ChangeWindowMode:
                    WindowModeChanged?.Invoke();
                    break;

                case HotKeys.FpsUp:
                case HotKeys.FpsUp2:
                    FpsUp?.Invoke();
                    break;

                case HotKeys.FpsDown:
                case HotKeys.FpsDown2:
                    FpsDown?.Invoke();
                    break;

                case HotKeys.SpfUp:
                    StagesByFrameUp?.Invoke();
                    break;

                case HotKeys.SpfDown:
                    StagesByFrameDown?.Invoke();
                    break;

                case HotKeys.Exit:
                    Exit?.Invoke();
                    break;
                }
            };
        }