Beispiel #1
0
 private void GetUIInput(UIInputEvent uiiei)
 {
     if (uiiei.startPressed)
     {
         StartGame();
     }
 }
Beispiel #2
0
 // Called when the node enters the scene tree for the first time.
 public override void _Ready()
 {
     UIInputEvent.RegisterListener(GetUIInput);
     CellConvertEvent.RegisterListener(CellConverted);
     DeathEvent.RegisterListener(OnDeathEvent);
     //Load all the needed scenes for the games start
     LoadScenes();
     InstatiateScenes();
 }
Beispiel #3
0
    public void StartPressed()
    {
        UIInputEvent uiiei = new UIInputEvent();

        uiiei.startPressed = true;
        uiiei.FireEvent();

        PressSound();
        ShowHUD();
    }
            public override void Update(float deltaTime)
            {
                UIInputEvent inputEvent = UIInput.GetCursorEvent();

                if (inputEvent != null && inputEvent.State != UIInputEvent.eState.Invalid)
                {
                    _value = inputEvent.Position;
                }
                else
                {
                    _value = new Vector2(0.5f, 0.5f);
                }
            }
Beispiel #5
0
        //--------------------------------------------------------
        //  客户端消息
        //--------------------------------------------------------
        private void OnNpcClicked(CEventBaseArgs args)
        {
            if (args == null || args.arg == null)
            {
                return;
            }

            if (UIInputEvent.TouchedUI() == true)
            {
                return;
            }

            GameObject npcObject = args.arg as GameObject;

            if (npcObject == null)
            {
                return;
            }

            var mono = ActorHelper.GetActorMono(npcObject.gameObject);

            if (mono == null)
            {
                return;
            }

            NpcPlayer targetNpc = mono.BindActor as NpcPlayer;

            if (targetNpc == null)
            {
                return;
            }

            // 点击npc后已经取消任务的导航了,所以要把导航任务清空
            TaskManager.Instance.NavigatingTask = null;

            //MissionManager.Instance.NotifyMetNpc((uint)targetNpc.NpcData.Id);
            targetNpc.OnClicked();
        }
        //--------------------------------------------------------
        //  客户端消息
        //--------------------------------------------------------
        public void OnPlayerControled(CEventBaseArgs data)
        {
            if (GameInput.Instance.GetEnableInput() == false || UIInputEvent.TouchedUI())
            {
                return;
            }

            NpcManager.Instance.NavigatingNpcId      = 0;
            NpcManager.Instance.TravelBootsJumpNpcId = 0;

            mCounter++;
            mTargetPathNodes.Clear();

            RunningTargetPathNode = null;

            if (mPathWalker != null)
            {
                mPathWalker.Reset();
            }

            TaskNavigationActive(false);
            IsNavigating = false;
        }
Beispiel #7
0
        /// <summary>
        /// 响应点击地面的消息
        /// </summary>
        /// <param name="ent"></param>
        void OnClickCollision(CEventBaseArgs ent)
        {
            Actor local_player = Game.Instance.GetLocalPlayer();

            if (local_player == null)
            {
                return;
            }

            if (GameInput.Instance.GetEnableInput() == false || UIInputEvent.TouchedUI()) /* || InstanceManager.Instance.IsAutoFighting == true*/
            {
                return;
            }

            Vector3 hitPos = (Vector3)ent.arg;

            XNavMeshHit nesrestHit;

            if (XNavMesh.SamplePosition(hitPos, out nesrestHit, 5.0f, LevelManager.GetInstance().AreaExclude))
            {
                hitPos = nesrestHit.position;
            }

            StopLocalPlayerWalkCoroutine();
            mLocalPlayerWalkCoroutine = SafeCoroutine.CoroutineManager.StartCoroutine(LocalPlayerWalkCoroutine(hitPos));

            if (m_ArrowEffectTemp == null)
            {
                MainGame.HeartBehavior.StartCoroutine(LoadEffect(m_ClickEffectPath, hitPos));
            }
            //EffectManager.GetInstance().GetEffectEmitter(effect_path).CreateInstance(x => OnEffectResLoad(x, ));
            else
            {
                OnEffectResLoad(m_ArrowEffectTemp, hitPos);
            }
        }
Beispiel #8
0
            void Update()
            {
                if (m_UICamera == null)
                {
                    m_UICamera = xc.ui.ugui.UIMainCtrl.MainCam;
                    return;
                }

                Vector3 thumb_localpos = Vector3.zero;
                Vector2 touch_pos = Vector3.zero;

                int count = Input.touchCount;

                if (count == 0)
                {
                    ResetJoystick();
                    return;
                }

                for (int i = 0; i < count; i++)
                {
                    Touch touch = Input.GetTouch(i);
                    
                    // 已经有摇杆对应的Touch
                    if (m_LastFingerId != -1 && m_LastFingerId != touch.fingerId)
                        continue;

                    touch_pos = touch.position;
                    if (touch.phase == TouchPhase.Began)// 开始点击
                    {
                        bool touch_ui = UIInputEvent.TouchedUI(touch.fingerId);

                        // 触碰到ui或者在可触摸范围外
                        if ((touch_ui || InTouchRange(touch_pos) == false))
                            continue;

                        // 记录fingerId和触摸的时间
                        m_LastFingerId = touch.fingerId;
                        m_LastFingerTime = Time.time;

                        // 显示虚拟摇杆
                        ShowJoystick(touch_pos);

                        // 发送事件
                        Actor actor = Game.Instance.GetLocalPlayer(); 
                        if (actor != null)
                        {
                            ClientEventMgr.GetInstance().FireEvent((int)ClientEvent.CE_PLAYERCONTROLED, null);
                        }
                        break;
                    }
                    else if(touch.phase == TouchPhase.Moved || touch.phase == TouchPhase.Stationary) // 在移动过程中
                    {
                        // 没有已经开始的Touch
                        if (m_LastFingerId == -1)
                            continue;

                        // 按下一段时间才可设置摇杆Thumb的位置
                        if (Time.time - m_LastFingerTime >= 0.1f)
                            thumb_localpos = ShowThumb(touch_pos);

                        break;
                    }
                    else if(touch.phase == TouchPhase.Ended || touch.phase == TouchPhase.Canceled) // 移动结束
                    {
                        // 没有已经开始的Touch
                        if (m_LastFingerId == -1) 
                            continue;

                        ResetJoystick();
                        break;
                    }
                }

                // 根据虚拟摇杆的按钮的位置来计算[-1,1]的坐标
                m_Position.x = thumb_localpos.x * m_BackImageSizeInv;
                m_Position.y = thumb_localpos.y * m_BackImageSizeInv;
            }
Beispiel #9
0
    /// <summary>
    /// 更新时检测技能的cd
    /// </summary>
    void Update()
    {
        if (NetReconnect.Instance.IsReconnect)
        {
            return;
        }

        // 普通攻击按键,定时自动触发点击消息
        if (mIsPressed)
        {
            if (GameInput.Instance.GetEnableInput() == false || mHoleOpen == false)
            {
                mIsPressed = false;
                return;
            }

            if (UIInputEvent.TouchedUI() == false)// 应用被切出,失去焦点
            {
                mIsPressed = false;
                StopPressWait();
                return;
            }

            float t = Time.time;
            if (t > mNextTime)
            {
                OnClick(null);

                mNextTime = t + DetalTime;
            }
        }

        var localPlayer = Game.Instance.GetLocalPlayer();

        if (localPlayer == null)// 角色为空
        {
            return;
        }

        // 技能槽未开启
        if (SkillHoleManager.Instance.IsHoleOpen(mFitPos) == false || SkillHoleManager.Instance.IsHoleWillOpen(mFitPos))
        {
            OnHoldHide();
            return;
        }

        // 技能未装配
        if (mSkillIdx == 0)
        {
            OnSkillNotFit();
            return;
        }

        // 技能为空
        Skill skill = localPlayer.GetSelfSkill(mSkillIdx);

        if (skill == null)
        {
            OnHoldClose();
            return;
        }

        // 技能正常
        OnHoldOpen();

        // 设置CD相关的显示
        if (!skill.IsInCD())// 技能不在cd中
        {
            SetObjectActive(mCDMask, false);

            if (mInCD)// 显示cd结束时候的特效
            {
                mInCD = false;
                if (mCDLevel != null)
                {
                    SetTextContent(mCDLevel, string.Empty);
                }

                if (mCDBlink != null)
                {
                    SetObjectActive(mCDBlink, false);
                    SetObjectActive(mCDBlink, true);

                    if (mCDBlinkDelayer == null)
                    {
                        mCDBlinkDelayer = mCDBlink.AddComponent <DelayEnableComponent>();
                    }

                    if (mCDBlinkDelayer != null)
                    {
                        mCDBlinkDelayer.DelayTime = 0.5f;
                        mCDBlinkDelayer.SetEnable = false;
                        mCDBlinkDelayer.Start();
                    }
                }
            }
        }
        else// 在cd中
        {
            mInCD = true;

            SetObjectActive(mCDMask, true);

            if (mCDMaskImage != null)
            {
                CooldownCtrl.CDInstance cd_inst = skill.GetCurrentCD();
                if (cd_inst != null)
                {
                    if (mCDLevel != null)
                    {
                        float level_seconds = cd_inst.GetRemainSeconds();
                        SetTextContent(mCDLevel, string.Format("{0:N1}", level_seconds));
                    }
                    mCDMaskImage.fillAmount = cd_inst.GetCDPercent();
                }
            }
        }
    }
Beispiel #10
0
    /// <summary>
    /// 更新时检测技能的cd
    /// </summary>
    public void Update()
    {
        if (NetReconnect.Instance.IsReconnect)
        {
            return;
        }

        // 普通攻击按键,定时自动触发点击消息
        if (mIsPressed)
        {
            if (GameInput.Instance.GetEnableInput() == false || mHoleOpen == false)
            {
                mIsPressed = false;
                return;
            }

            if (UIInputEvent.TouchedUI() == false)// 应用被切出,失去焦点
            {
                mIsPressed = false;
                StopPressWait();
                return;
            }

            float t = Time.time;
            if (t > mNextTime)
            {
                OnClick(null);

                mNextTime = t + DetalTime;
            }
        }

        Actor local_player = Game.GetInstance().GetLocalPlayer();

        if (local_player == null)// 角色为空
        {
            return;
        }

        //DBInstance.InstanceInfo instanceInfo = InstanceManager.Instance.InstanceInfo;
        //if (instanceInfo != null && instanceInfo.mWarSubType == GameConst.WAR_SUBTYPE_ARENA)
        //{
        //    OnHoldHide();
        //    return;
        //}
        if (CanShowMateButton() == false)
        {
            OnHoldHide();
            return;
        }


        if (SkillHoleManager.Instance.IsHoleOpen(m_FitPos) == false || SkillHoleManager.Instance.IsHoleWillOpen(m_FitPos))// 技能槽还没开启
        {
            OnHoldHide();
            return;
        }

        if (mSkillIdx == 0)
        {
            OnSkillNotFit();
            return;
        }

        Skill skill = local_player.GetSelfSkill(mSkillIdx);

        if (skill == null)// 技能为空
        {
            OnHoldClose();
            return;
        }

        OnHoldOpen();

        // 设置CD相关的显示
        if (!skill.IsInCD())// 技能不在cd中
        {
            if (mCDMask.activeSelf)
            {
                mCDMask.SetActive(false);
            }

            if (mInCD)// 显示cd结束时候的特效
            {
                mInCD = false;
                if (mCDLevel != null)
                {
                    mCDLevel.text = string.Empty;
                }

                if (mCDBlink != null)
                {
                    mCDBlink.SetActive(false);
                    mCDBlink.SetActive(true);

                    if (mCDBlink_DelayEnableComponent == null)
                    {
                        mCDBlink_DelayEnableComponent = mCDBlink.AddComponent <DelayEnableComponent>();
                    }
                    if (mCDBlink_DelayEnableComponent != null)
                    {
                        mCDBlink_DelayEnableComponent.DelayTime = 0.5f;
                        mCDBlink_DelayEnableComponent.SetEnable = false;
                        mCDBlink_DelayEnableComponent.Start();
                    }
                }
            }
        }
        else// 在cd中
        {
            mInCD = true;

            if (!mCDMask.activeSelf)
            {
                mCDMask.SetActive(true);
            }

            if (mCDMaskImage != null)
            {
                CooldownCtrl.CDInstance cd_inst = skill.GetCurrentCD();
                if (cd_inst != null)
                {
                    if (mCDLevel != null)
                    {
                        float level_seconds = cd_inst.GetRemainSeconds();
                        mCDLevel.text = string.Format("{0:N1}", level_seconds);
                    }
                    mCDMaskImage.fillAmount = cd_inst.GetCDPercent();
                }
            }
        }
    }
Beispiel #11
0
    void UpdateRotate()
    {
        if (CanRotate)
        {
            if (Input.GetMouseButton(0) && mGameObject != null && m_FixedTouchTransform != null && UIInputEvent.TouchedUI(m_FixedTouchTransform.gameObject))
            {
                if (!mStartDrag)
                {
                    mStartDrag = true;
                    mStartPos  = Input.mousePosition;
                }
            }
            else if (mStartDrag)
            {
                mStartDrag = false;
            }

            if (mStartDrag)
            {
                float angle = mStartPos.x - Input.mousePosition.x;
                angle *= 0.6f;

                mCacheTrans.transform.Rotate(Vector3.up, angle);

                mStartPos = Input.mousePosition;
            }
        }
    }