Zjh游戏(二十三)自身弃牌、比牌以及加注的处理

自身玩家弃牌

  • 三个玩家都有弃牌的操作,可以提取到基类中
  • 弃牌操作多了些操作,只需要重写即可
  • 在比牌失败以及弃牌按钮的点击事件中调用这个方法

BaseManager_Stand

/// <summary>
    /// 弃牌
    /// </summary>
    protected virtual void GiveUpCard()
    {
        isGiveUpCard = true;//是否弃牌设置为true
        go_CountDown.SetActive(false);//隐藏倒计时
        txt_GiveUp.SetActive(true);//显示已放弃
        m_IsStartStakes = false;//自身是否开始下注设置为false
        m_ZjhManager.SetNextPlayerStartStakes();//设置下一位玩家下注

        ///删除三张牌
        foreach (var item in m_SpawnCardLsit)
        {
            Destroy(item);
        }
    }

SelfManager_Stand

 /// <summary>
    /// 弃牌
    /// </summary>
    protected override void GiveUpCard()
    {
        base.GiveUpCard();
        go_CompareButtons.SetActive(false);//隐藏比牌按钮
        go_BottomButton.SetActive(false);//隐藏底部按钮
    }

自身玩家加注的处理

  • 在UGUI中所有的按钮的点击范围都是一个长方形
  • 本游戏中的底部按钮为不规则的图片,所以需要进行设置
  • 利用alphaHitTestMinimumThreshold来进行设置UGUI的按钮点击范围
  • 设置倍数的颜色,实现当前的倍数颜色和未点击的倍数颜色不同
  • 加注的点击,确定当前是几倍,在调用ZhjManager_Stand中的下注方法
  • 最后进行设置

SelfManager_Stand

//设置颜色
 private void FixedUpdate()
    {
        if (tgo_2.isOn)
        {
            tgo_2.GetComponent<Image>().color = Color.gray;
            tgo_5.GetComponent<Image>().color = Color.white;
            tgo_10.GetComponent<Image>().color = Color.white;
        }
        if (tgo_5.isOn)
        {
            tgo_5.GetComponent<Image>().color = Color.gray;
            tgo_2.GetComponent<Image>().color = Color.white;
            tgo_10.GetComponent<Image>().color = Color.white;
        }
        if (tgo_10.isOn)
        {
            tgo_10.GetComponent<Image>().color = Color.gray;
            tgo_5.GetComponent<Image>().color = Color.white;
            tgo_2.GetComponent<Image>().color = Color.white;
        }
        }
//设置所有按钮的点击范围
 	    btn_LockCard.GetComponent<Image>().alphaHitTestMinimumThreshold = 0.5f;
        btn_FollowStakes.GetComponent<Image>().alphaHitTestMinimumThreshold = 0.5f;
        btn_AddStakes.GetComponent<Image>().alphaHitTestMinimumThreshold = 0.5f;
        btn_ComapreCard.GetComponent<Image>().alphaHitTestMinimumThreshold = 0.5f;
        btn_GiveUp.GetComponent<Image>().alphaHitTestMinimumThreshold = 0.5f;
        tgo_2.GetComponent<Image>().alphaHitTestMinimumThreshold = 0.5f;
        tgo_5.GetComponent<Image>().alphaHitTestMinimumThreshold = 0.5f;
        tgo_10.GetComponent<Image>().alphaHitTestMinimumThreshold = 0.5f;

//加注的方法
	 /// <summary>
    /// 加注按钮的点击
    /// </summary>
    private void OnAddStakesButtonClick()
    {
        if (tgo_2.isOn)
        {
            StakesAffter(m_ZjhManager.Stakes(m_ZjhManager.Stakes(0) * 1), "不看");
        }
        if (tgo_5.isOn)
        {
            StakesAffter(m_ZjhManager.Stakes(m_ZjhManager.Stakes(0) * 5), "不看");
        }
        if (tgo_10.isOn)
        {
            StakesAffter(m_ZjhManager.Stakes(m_ZjhManager.Stakes(0) * 9), "不看");
        }
        m_IsStartStakes = false;//是否开始下注设置为false
        go_CountDown.SetActive(false);//隐藏倒计时
        SetBottomButtonInteractable(false);//底部按钮的可交互性设置为false
        go_CompareButtons.SetActive(false);//比牌按钮设置为false
        m_ZjhManager.SetNextPlayerStartStakes();//设置下一位玩家可以下注
    }

自身比牌

  • 制作两个按钮,一个和左边玩家进行比牌,一个和右边玩家进行比牌
  • 在ZhjManager_Stand中定义两个属性,Get值为 return左右两边玩家中bool值是否弃牌
  • 在点击比牌按钮时,调用ZhjManager_Stand中的两个属性进行判断左右两边玩家是否弃牌,如果未弃牌则显示比牌按钮
  • 在ZhjManager_Stand中创建自身玩家与两个玩家比牌的方法,广播VSWithSelf这个事件码
  • 给两个按钮添加点击事件,调用ZjhManager_Stand中的比牌方法

SelfManager_Stand

 /// <summary>
    /// 比牌按钮的点击
    /// </summary>
    private void OnCompareButtonClick()
    {
        go_CompareButtons.SetActive(true);
        if (m_ZjhManager.m_LeftIsGiveUp)
        {
            btn_CompareLeft.gameObject.SetActive(false);
        }
        if (m_ZjhManager.m_RightIsGiveUp)
        {
            btn_CompareRight.gameObject.SetActive(false);
        }
    }
    
	/// <summary>
    /// 与左边玩家比牌的按钮点击
    /// </summary>
    private void OnCompareLeftButtonClick()
    {
        m_ZjhManager.SelfPlayerWithLeftPlayerCompared();
        SetBottomButtonInteractable(false);
    }
    /// <summary>
    /// 与右边玩家比牌的按钮点击
    /// </summary>
    private void OnCompareRightButtonClick()
    {
        m_ZjhManager.SelfPlayerWithRightPlayerCompared();
        SetBottomButtonInteractable(false);
    }

ZhjManager_Stand

 	public bool m_LeftIsGiveUp { get { return m_LeftManager.isGiveUpCard; } }
    public bool m_RightIsGiveUp { get { return m_RightManager.isGiveUpCard; } }

    /// <summary>
    /// self玩家与左边玩家比牌
    /// </summary>
    public void SelfPlayerWithLeftPlayerCompared()
    {
        EventCenter.Broadcast(EventDefine.VSWithSelf, (BaseManager_Stand)m_SelfManager, (BaseManager_Stand)m_LeftManager, "我", "左边玩家");
    } 
    /// <summary>
    /// self玩家与右边玩家比牌
    /// </summary>
    public void SelfPlayerWithRightPlayerCompared()
    {
        EventCenter.Broadcast(EventDefine.VSWithSelf, (BaseManager_Stand)m_SelfManager, (BaseManager_Stand)m_RightManager, "我", "右边玩家");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值