コード例 #1
0
ファイル: PlayerSetup.cs プロジェクト: RealityStop/khronos
        private void GeneratePlayer(int gamepadNumber)
        {
            if (AllocatedGamepads.Count < MaxPlayerCount)
            {
                var newDef = new PlayerDefinition()
                {
                    AssignedGamepad = gamepadNumber
                };
                AllocatedGamepads.Add(gamepadNumber, newDef);

                if (PlayerDefinitionEditorPrefab.IsAvailable)
                {
                    var newEditor = PlayerDefinitionEditorPrefab.Res.Instantiate();
                    var editor    = newEditor.GetComponent <PlayerDefinitionEditor>();
                    editor.PlayerDef = newDef;
                    for (int i = 1; i < AllocatedGamepads.Count; i++)
                    {
                        newDef.NextColor();
                    }

                    newDef.Editor = editor;
                    Editors.Add(editor);
                    Editors.Sort(Comparer <PlayerDefinitionEditor> .Create((one, two) => { return(one.PlayerDef.AssignedGamepad.CompareTo(two.PlayerDef.AssignedGamepad)); }));
                    Scene.Current.AddObject(newEditor);
                }
            }
        }
コード例 #2
0
ファイル: PlayerSetup.cs プロジェクト: RealityStop/khronos
        private void CheckForPlayerAddRemove()
        {
            for (int i = 0; i < DualityApp.Gamepads.Count; i++)
            {
                var item = DualityApp.Gamepads[i];
                if (item.IsAvailable)
                {
                    if (item.ButtonHit(GamepadButton.Start))
                    {
                        if (AllocatedGamepads.ContainsKey(i))
                        {
                            RemovePlayer(i);
                        }
                        else
                        {
                            GeneratePlayer(i);
                        }
                    }
                }
            }

            if (DualityApp.Keyboard.KeyHit(Duality.Input.Key.F2))
            {
                GeneratePlayer(AllocatedGamepads.Count);
            }
        }
コード例 #3
0
ファイル: PlayerSetup.cs プロジェクト: RealityStop/khronos
 private void RemovePlayer(int i)
 {
     if (AllocatedGamepads.ContainsKey(i))
     {
         Editors.Remove(AllocatedGamepads[i].Editor);
         AllocatedGamepads[i].Editor.DisposeLater();
         AllocatedGamepads.Remove(i);
     }
 }
コード例 #4
0
ファイル: PlayerSetup.cs プロジェクト: RealityStop/khronos
        public void OnUpdate()
        {
            MinPlayerCount = GameSetup.Instance.Level.Res.MinPlayerCount;
            MaxPlayerCount = GameSetup.Instance.Level.Res.MaxPlayerCount;

            CheckForPlayerAddRemove();

            PositionEditors();

            if (Editors.Count >= MinPlayerCount && Editors.Count <= MaxPlayerCount)
            {
                Valid = true;
            }
            else
            {
                Valid = false;
            }

            if (!Valid)
            {
                HelpTextRenderer.Text.SourceText = string.Format("Add more Players!  This map supports {0} players.", MinPlayerCount);
            }
            else
            {
                HelpTextRenderer.Text.SourceText = "";
            }

            AllReady = true;
            foreach (var item in Editors)
            {
                if (!item.PlayerReady)
                {
                    AllReady = false;
                }
            }

            if (Valid && AllReady)
            {
                GameSetup.Instance.SwitchToStage(AllocatedGamepads.Select(x => x.Value));
            }
        }