コード例 #1
0
ファイル: InputManager.cs プロジェクト: bia24/LittleHero
    /// <summary>
    /// 返回键盘配置
    /// </summary>
    /// <returns></returns>
    public KeyboardEntity GetPlayerKeyboardSetting(int playerId)
    {
        KeyboardEntity res = null;

        if (!keyboardEntities.TryGetValue(playerId, out res))
        {
            Debug.LogError("can not find KeyboardEntity according this playerId : " + playerId);
        }
        return(res);
    }
コード例 #2
0
ファイル: UIGameSettings.cs プロジェクト: bia24/LittleHero
    /// <summary>
    /// 键盘配置 显示 初始化
    /// </summary>
    /// <param name="data"></param>
    private void KeyboardConfigInit()
    {
        GameObject player2 = GetWidget("ControlPanel_Player2");
        //玩家1设置
        KeyboardEntity ke1 = InputController.Instance.GetPlayerKeyboardSetting(0);

        GetWidget <Text>("Text_Up").text     = ke1.up;
        GetWidget <Text>("Text_Down").text   = ke1.down;
        GetWidget <Text>("Text_Left").text   = ke1.left;
        GetWidget <Text>("Text_Right").text  = ke1.right;
        GetWidget <Text>("Text_Attack").text = ke1.attack;
        GetWidget <Text>("Text_Jump").text   = ke1.jump;

        //玩家2设置
        if (player2.activeSelf)
        {
            KeyboardEntity ke2 = InputController.Instance.GetPlayerKeyboardSetting(1);

            GetWidget <Text>("Text_Up_Player2").text     = ke2.up;
            GetWidget <Text>("Text_Down_Player2").text   = ke2.down;
            GetWidget <Text>("Text_Left_Player2").text   = ke2.left;
            GetWidget <Text>("Text_Right_Player2").text  = ke2.right;
            GetWidget <Text>("Text_Attack_Player2").text = ke2.attack;
            GetWidget <Text>("Text_Jump_Player2").text   = ke2.jump;
        }

        //检查字体
        CheckInputFieldFont();

        //初始化颜色:白色
        foreach (var t in inputFields)
        {
            GetInputFieldBg(t).color = Color.white;
        }

        //检测是否重复
        for (int i = 0; i < inputFields.Count; i++)
        {
            Text t = inputFields[i];
            if (t.text.Equals(""))
            {
                continue;
            }
            for (int j = i + 1; j < inputFields.Count; j++)
            {
                Text m = inputFields[j];
                if (t.text.Equals(m.text))
                {
                    m.text = "";
                    break;
                }
            }
        }
    }
コード例 #3
0
        public void Initialize()
        {
            // 入力
            KeyboardKeyHandlerList.Select(x => x.OnDownAsObservable())
            .Merge()
            .Subscribe(Set)
            .AddTo(Disposable);

            // 送信
            KeyboardSendButtonHandler.OnDownAsObservable()
            .Where(_ => !KeyboardEntity.IsEmpty())
            .Subscribe(_ =>
            {
                switch (MainStateEntity.State)
                {
                case MainState.Wait:
                    Comment();
                    break;

                case MainState.StagePlay:
                    SendChat();
                    break;
                }
            })
            .AddTo(Disposable);

            //  削除
            KeyboardDeleteButtonHandler.OnDownAsObservable()
            .Subscribe(_ => Delete())
            .AddTo(Disposable);

            // Owenrの場合、徐々に文字が増えていく
            TimerEntity.OnUpdateTimerAsObservable()
            .Where(_ => PlayerEntity.IsOwner(PhotonNetwork.LocalPlayer))
            .Where(_ => MainStateEntity.Check(MainState.StagePlay))
            .Subscribe(time =>
            {
                var unlockKey = UnlockKeyList.List.ElementAtOrDefault(KeyboardEntity.UnlockKeyIndex);
                if (unlockKey != null && time >= unlockKey.ThresholdTime)
                {
                    foreach (var i in KeyboardEntity.EnableOwner(unlockKey.Count))
                    {
                        KeyboardKeyRendererList[i].Enable();
                    }

                    KeyboardEntity.IncreaseUnlockKeyIndex();
                    KeyboardListRenderer.PlayEnableSound();
                    InfoEntity.Set($"新しく {unlockKey.Count}文字 追加されました");
                }
            })
            .AddTo(Disposable);
        }
コード例 #4
0
        private void Setup()
        {
            // BGM変更
            AudioPlayer.Play(StageEntity.StageCount >= Setting.RoomPlayerCount
                ? AudioType.Main3
                : AudioType.Main2);

            // タイマー初期化
            TimerEntity.Reset();

            // チャット欄を削除しておく
            PhotonChatPrcRequester.Delete();

            // Owner更新
            PlayerEntity.SetPlayerOwnerIndex(StageEntity.StageCount - 1);

            // Masterが抽選をして答えをランダムにセットするように要求
            if (PhotonNetwork.IsMasterClient)
            {
                StageReadyRpcRequester.Request(AnswerList.GetRandom());
            }

            if (PlayerEntity.IsOwner(PhotonNetwork.LocalPlayer))
            {
                // 出題者は限られた文字しか使えない
                KeyboardEntity.InitializeOwner(KeyboardKeyRendererList.Count);
                var disableIndexList = Enumerable
                                       .Range(0, KeyboardKeyRendererList.Count)
                                       .Except(KeyboardEntity.EnableOwner(Setting.InitialEnableKeyCount));

                foreach (var index in disableIndexList)
                {
                    KeyboardKeyRendererList[index].Disable();
                }
            }
            else
            {
                foreach (var keyboardKeyRenderer in KeyboardKeyRendererList)
                {
                    keyboardKeyRenderer.Enable();
                }
            }
        }
コード例 #5
0
ファイル: InputManager.cs プロジェクト: bia24/LittleHero
    /// <summary>
    /// 获得玩家id,指定键位上的键值
    /// </summary>
    /// <param name="PlayerId"></param>
    /// <param name="target"></param>
    /// <returns></returns>
    public string GetGamekey(int PlayerId, GameKey target)
    {
        KeyboardEntity ke = null;

        if (!keyboardEntities.TryGetValue(PlayerId, out ke))
        {
            Debug.LogError("player id can not match one keyboard entity");
        }

        string res = null;

        switch (target)
        {
        case GameKey.Up:
            res = ke.up;
            break;

        case GameKey.Down:
            res = ke.down;
            break;

        case GameKey.Left:
            res = ke.left;
            break;

        case GameKey.Right:
            res = ke.right;
            break;

        case GameKey.Attack:
            res = ke.attack;
            break;

        case GameKey.Jump:
            res = ke.jump;
            break;
        }

        return(res);
    }
コード例 #6
0
ファイル: InputManager.cs プロジェクト: bia24/LittleHero
    /// <summary>
    /// 设置游戏键位
    /// </summary>
    /// <param name="playerId"></param>
    /// <param name="target"></param>
    /// <returns></returns>
    public void SetGameKey(int playerId, GameKey target, string keyValue)
    {
        KeyboardEntity ke = null;

        if (!keyboardEntities.TryGetValue(playerId, out ke))
        {
            Debug.LogError("player id can not match one keyboard entity");
        }

        switch (target)
        {
        case GameKey.Up:
            ke.up = keyValue;
            break;

        case GameKey.Down:
            ke.down = keyValue;
            break;

        case GameKey.Left:
            ke.left = keyValue;
            break;

        case GameKey.Right:
            ke.right = keyValue;
            break;

        case GameKey.Attack:
            ke.attack = keyValue;
            break;

        case GameKey.Jump:
            ke.jump = keyValue;
            break;
        }
    }
コード例 #7
0
 private void Delete()
 {
     KeyboardEntity.Delete();
     KeyboardFormRenderer.Render("");
 }
コード例 #8
0
 private void Set(string text)
 {
     KeyboardEntity.Add(text);
     KeyboardFormRenderer.Render(KeyboardEntity.Text);
 }