能不能把3d斗地主下载里面的资料注销

怎么把所有qq游戏账号注销_百度知道
怎么把所有qq游戏账号注销
我有更好的答案
是不能进行手动注销的。1、目前不存在永久不回收;
3,45天未登录的免费(普通)号码进行回收、不删除的号码;
2、如果您需要申请较长时间不被回收或删除的号码,建议您可以通过付费方式申请号码,此种号码较长时间不登录也不会回收,同时您最好是隔一段时间登录一次,并且您是在付费期间的情况下,如果QQ号码开通任意一项包月服务,只要此项包月服务没有取消的情况下; 2、对注册当天登录后、一般情况下,号码不会回收。
关于免费(普通)号码回收规则的说明 1、对注册后3天没有登录且没有添加好友的免费(普通)号码进行回收,但前提是在您不违反我公司各方面相关规定
帐号不能手动注销,半年不玩就可以注销了
1条折叠回答
为您推荐:
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。jj斗地主里面的手机号能注消吗_百度知道
jj斗地主里面的手机号能注消吗
我有更好的答案
找另一个手机号取代这个。
为您推荐:
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。前面我们实现了点击开始游戏按钮,系统依次给玩家发牌的逻辑和动画,并展示当前的手牌。这期我们继续实现接下来的功能--叫地主。
1.首先这两天,学习了DOTween,这是一个强大的Unity动画插件,大家可以参考:,个人感觉DOTween还是比较好用的。
好的,我们先来重构一下动画部分的代码(没有绝对牛逼的架构和设计,项目过程中不要不断的持续改进嘛);先把之前ITween相关引用从项目中删除,然后导入DOTween插件。
相关动画代码改造示例如下:
//移动动画,动画结束后自动销毁
var tween = cover.transform.DOMove(playerHeapPos[termCurrentIndex].position, 0.3f);
tween.OnComplete(() =& Destroy(cover));
怎么样,比之前简洁多了吧,而且之前ITween好像不太好用,处理自动销毁时,跟协程点冲突(可能我自己用的方式不对),现在改用DOTween,一点问题也没有~官网上也有这几个动画插件的性能比较,相对来说DOTween表现还是很不错的。
2.再来说说具体的设计思路
刚开始觉得叫地主逻辑挺简单,不就是分2次发牌嘛,第一次发51张,后面谁叫到地主再发3张就好了嘛,但其实实现的过程中,发现没有那么简单,需要注意的细节挺多:
a.发牌逻辑调整:因为发牌是按照当前玩家顺序,依次发牌,相当一个箭头一直指向当前回合玩家,发完51张牌后,箭头又开始指向开始发牌的玩家;这时候,需要判断首次发牌结束,由当前回合玩家开始叫牌;
b.当前玩家进入叫牌阶段时,触发倒计时,倒计时内如果玩家选择叫牌,则箭头保持不变,然后开始继续给当前玩家发3张剩余的牌;
c.倒计时内如果玩家选择不叫,则箭头继续指向下个玩家,下个玩家开始叫牌,回到分支b;
d.倒计时内玩家如果没有任何选择,结束后默认不叫,回到分支c;
e.如果3个玩家都没叫,则流局,重新开局(本期未实现,很容易,大家后面可以自己去尝试实现);
f.可以选择叫3分、2分、1分(将来需要实现,设计开发提前考虑)
h.考虑到玩家自己和对手叫牌逻辑不一样,自己的话,通过界面点击触发,对手暂时监听按键触发(后期改智能AI判断),比如按下Q叫牌,按下W不叫;
i.倒计时设计,叫牌的时候,需要显示玩家面前的计时器,计时结束后触发不叫,其他情况下隐藏;
j.玩家只有自己回合才能叫地主,必须做限制;
玩家类调整
Player作为玩家的基类,我们需要增加ToBiding(开始叫地主),ForBid(抢地主),NotBid(不抢地主),来控制玩家在叫地主过程中的公共逻辑。
ToBiding:转到自己回合,并设置倒计时;
ForBid:跳出增加回合,停止倒计时,并调用卡牌管理类中的抢地主功能;
ForBid:跳出增加回合,停止倒计时,并调用卡牌管理类中的不抢地主功能;
然后,倒计时这块,添加一个协程Considerating,专门处理倒计时控件显示,标识玩家正在考虑中;
using System.C
using System.Collections.G
using UnityE
using UnityEngine.UI;
public abstract class Player : MonoBehaviour
protected List&CardInfo& cardInfos = new List&CardInfo&();
//个人所持卡牌
private Text cardCoutT
private Text countDownT
private int consideratingTime = 6; //玩家考虑时间
protected bool isMyTerm = false;
//当前是否是自己回合
void Start()
cardCoutText = transform.Find("HeapPos/Text").GetComponent&Text&();
countDownText = transform.Find("CountDown/Text").GetComponent&Text&();
/// &summary&
/// 增加一张卡牌
/// &/summary&
/// &param name="cardName"&&/param&
public void AddCard(string cardName)
cardInfos.Add(new CardInfo(cardName));
cardCoutText.text = cardInfos.Count.ToString();
/// &summary&
/// 清空所有卡片
/// &/summary&
public void DropCards()
cardInfos.Clear();
/// &summary&
/// 用户考虑时间
/// &/summary&
private IEnumerator Considerating()
var time = consideratingT
while (time & 0)
countDownText.text = time.ToString();
yield return new WaitForSeconds(1);
/// &summary&
/// 开始叫地主
/// &/summary&
public virtual void ToBiding()
isMyTerm = true;
//开始倒计时
countDownText.transform.parent.gameObject.SetActive(true);
StartCoroutine("Considerating");
/// &summary&
/// 抢地主
/// &/summary&
public void ForBid()
//关闭倒计时
countDownText.transform.parent.gameObject.SetActive(false);
StopCoroutine("Considerating");
CardManager._instance.ForBid();
isMyTerm = false;
/// &summary&
/// 不抢地主
/// &/summary&
public void NotBid()
//关闭倒计时
countDownText.transform.parent.gameObject.SetActive(false);
StopCoroutine("Considerating");
CardManager._instance.NotBid();
isMyTerm = false;
/// &summary&
/// 卡牌排序(从大到小)
/// &/summary&
protected void Sort()
cardInfos.Sort();
cardInfos.Reverse();
自身玩家类调整
其实就是重写了基类ToBiding方法,调用显示叫牌按钮(只有自身玩家才需要)
using System.Collections.G
using DG.T
using UnityE
using UnityEngine.EventS
/// &summary&
/// 自身玩家
/// &/summary&
public class PlayerSelf : Player
public GameO
private Transform originPos1; //牌的初始位置
private Transform originPos2; //牌的初始位置
private List&GameObject& cards = new List&GameObject&();
private bool canSelectCard = false;
//玩家是否可以选牌
void Awake()
originPos1 = transform.Find("OriginPos1");
originPos2 = transform.Find("OriginPos2");
//整理手牌
public void GenerateAllCards()
//计算每张牌的偏移
var offsetX = originPos2.position.x - originPos1.position.x;
//获取最左边的起点
int leftCount = (cardInfos.Count / 2);
var startPos = originPos1.position + Vector3.left * offsetX * leftC
for (int i = 0; i & cardInfos.C i++)
//生成卡牌
var card = Instantiate(prefab, originPos1.position, Quaternion.identity, transform);
card.GetComponent&RectTransform&().localScale = Vector3.one * 0.6f;
card.GetComponent&Card&().InitImage(cardInfos[i]);
card.transform.SetAsLastSibling();
//动画移动
var tween = card.transform.DOMoveX(startPos.x + offsetX * i, 1f);
if (i == cardInfos.Count - 1) //最后一张动画
tween.OnComplete(() =& { canSelectCard = true; });
cards.Add(card);
/// &summary&
/// 销毁所有卡牌对象
/// &/summary&
public void DestroyAllCards()
cards.ForEach(Destroy);
cards.Clear();
/// &summary&
/// 开始叫牌
/// &/summary&
public override void ToBiding()
base.ToBiding();
CardManager._instance.SetBidButtonActive(true);
/// &summary&
/// 点击卡牌处理
/// &/summary&
/// &param name="data"&&/param&
public void CardClick(BaseEventData data)
//叫牌或出牌阶段才可以选牌
if (canSelectCard &&
(CardManager._instance.cardManagerState == CardManagerStates.Bid ||
CardManager._instance.cardManagerState == CardManagerStates.Playing))
var eventData = data as PointerEventD
if (eventData == null) return;
var card = eventData.pointerCurrentRaycast.gameObject.GetComponent&Card&();
if (card == null) return;
card.SetSelectState();
对手玩家类调整
主要模拟对手叫牌,如果是玩家回合,按下Q叫牌,按下W不叫
using UnityE
public class PlayerOther : Player
void Update()
//如果当前是自己回合,模拟对手叫牌
if (isMyTerm)
if (Input.GetKeyDown(KeyCode.Q))
if (Input.GetKeyDown(KeyCode.W))
卡牌管理类调整
首先需要改造发牌方法,现在区分发牌是发普通牌还是发发地主牌,根据发牌的不同类型,取牌堆里的不同牌,再判断是依次发牌,还是只发给地主牌。
然后具体实现玩家开始抢地主StartBiding,叫地主ForBid,不叫地主NotBid 3个方法:
StartBiding:从当前回合玩家开始叫牌;
ForBid:设置当前回合玩家是地主,并给地主发余下3张牌;
NotBid :转向下个回合玩家开始叫牌;
using System.C
using System.IO;
using System.L
using DG.T
using UnityE
/// &summary&
/// 卡牌管理
/// &/summary&
public class CardManager : MonoBehaviour
public static CardManager _
public float dealCardSpeed = 20;
//发牌速度
public Player[] P
//玩家的集合
public GameObject coverP
//背面排预制件
public Transform heapP
//牌堆位置
public Transform[] playerHeapP
//玩家牌堆位置
public CardManagerStates cardManagerS
private string[] cardN
//所有牌集合
private int termStartI
//回合开始玩家索引
private int termCurrentI
//回合当前玩家索引
private int bankerI
//当前地主索引
private GameObject bidB
void Awake()
_instance = this;
cardNames = GetCardNames();
bidBtns = GameObject.Find("BidBtns");
bidBtns.SetActive(false);
/// &summary&
/// &/summary&
public void ShuffleCards()
//进入洗牌阶段
cardManagerState = CardManagerStates.ShuffleC
cardNames = cardNames.OrderBy(c =& Guid.NewGuid()).ToArray();
/// &summary&
/// 开始发牌
/// &/summary&
public IEnumerator DealCards()
//进入发牌阶段
cardManagerState = CardManagerStates.DealC
termCurrentIndex = termStartI
yield return DealHeapCards(false);
/// &summary&
/// 发牌堆上的牌(如果现在不是抢地主阶段,发普通牌,如果是,发地主牌)
/// &/summary&
/// &returns&&/returns&
private IEnumerator DealHeapCards(bool ifForBid)
//显示牌堆
heapPos.gameObject.SetActive(true);
playerHeapPos.ToList().ForEach(s =& { s.gameObject.SetActive(true); });
var cardNamesNeeded = ifForBid
? cardNames.Skip(cardNames.Length - 3).Take(3)
//如果是抢地主牌,取最后3张
: cardNames.Take(cardNames.Length - 3);
//如果首次发牌
foreach (var cardName in cardNamesNeeded)
//给当前玩家发一张牌
Players[termCurrentIndex].AddCard(cardName);
var cover = Instantiate(coverPrefab, heapPos.position, Quaternion.identity, heapPos.transform);
cover.GetComponent&RectTransform&().localScale = Vector3.
//移动动画,动画结束后自动销毁
var tween = cover.transform.DOMove(playerHeapPos[termCurrentIndex].position, 0.3f);
tween.OnComplete(() =& Destroy(cover));
yield return new WaitForSeconds(1 / dealCardSpeed);
//下一个需要发牌者
if (!ifForBid)
SetNextPlayer();
//隐藏牌堆
heapPos.gameObject.SetActive(false);
playerHeapPos[0].gameObject.SetActive(false);
//发普通牌
if (!ifForBid)
//显示玩家手牌
ShowPlayerSelfCards();
StartBiding();
//发地主牌
if (Players[bankerIndex] is PlayerSelf)
//显示玩家手牌
ShowPlayerSelfCards();
cardManagerState = CardManagerStates.P
/// &summary&
/// 开始抢地主
/// &/summary&
private void StartBiding()
cardManagerState = CardManagerStates.B
Players[termCurrentIndex].ToBiding();
/// &summary&
/// 显示玩家手牌
/// &/summary&
private void ShowPlayerSelfCards()
Players.ToList().ForEach(s =&
var player0 = s as PlayerS
if (player0 != null)
player0.GenerateAllCards();
/// &summary&
/// 清空牌局
/// &/summary&
public void ClearCards()
//清空所有玩家卡牌
Players.ToList().ForEach(s =& s.DropCards());
//显示玩家手牌
Players.ToList().ForEach(s =&
var player0 = s as PlayerS
if (player0 != null)
player0.DestroyAllCards();
/// &summary&
/// 叫地主
/// &/summary&
public void ForBid()
//设置当前地主
bankerIndex = termCurrentI
//给地主发剩下的3张牌
SetBidButtonActive(false);
StartCoroutine(DealHeapCards(true));
/// &summary&
/// &/summary&
public void NotBid()
SetBidButtonActive(false);
SetNextPlayer();
Players[termCurrentIndex].ToBiding();
/// &summary&
/// 控制叫地主按钮是否显示
/// &/summary&
/// &param name="isActive"&&/param&
public void SetBidButtonActive(bool isActive)
bidBtns.SetActive(isActive);
/// &summary&
/// 设置下一轮开始玩家
/// &/summary&
public void SetNextTerm()
termStartIndex = (termStartIndex + 1) % Players.L
/// &summary&
/// 设置下个回合玩家
/// &/summary&
/// &returns&&/returns&
public void SetNextPlayer()
termCurrentIndex = (termCurrentIndex + 1) % Players.L
private string[] GetCardNames()
string fullPath = "Assets/Resources/Images/Cards/";
if (Directory.Exists(fullPath))
DirectoryInfo direction = new DirectoryInfo(fullPath);
FileInfo[] files = direction.GetFiles("*.png", SearchOption.AllDirectories);
return files.Select(s =& Path.GetFileNameWithoutExtension(s.Name)).ToArray();
return null;
//开始新回合
public void OnStartTermClick()
ClearCards();
ShuffleCards();
StartCoroutine(DealCards());
至此,我们【叫地主】功能大体完成了,来试试效果吧~
阅读(...) 评论()3D彩票打错能不能注销_百度知道
3D彩票打错能不能注销
您的回答被采纳后将获得:
系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
我有更好的答案
拿去卖彩票的那里,可以注销的,但是开奖了的就不行
你网上买的?
彩票站买的
坐标重庆,这里可以注销,可能你那规则不一样
can I do? Ill have the final exam in ten day
其他3条回答
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 3d斗地主下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信