100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > unity3d棋牌游戏教程之手机斗地主的发牌功能实现

unity3d棋牌游戏教程之手机斗地主的发牌功能实现

时间:2020-03-15 03:51:49

相关推荐

unity3d棋牌游戏教程之手机斗地主的发牌功能实现

这次小编的Unity3D棋牌游戏教程主要教手机斗地主的发牌功能的实现,话不多说,咱们先创建项目:

1.创建Unity的2D项目,暂且叫做ChinesePoker吧,就用自带的UGUI来编辑UI, 目前只导入iTween插件,用来方便控制动画效果。

目录结构如下:

考虑卡牌需要动态生成,我把图片资源放到Resource目录,并按照Card_类型(大小王,红桃,黑桃,方片,梅花 )_数字(卡牌所在类型中的数字)命名。

2.建第一个场景,默认叫001_Playing,作为主要玩牌的场景,暂时作为第1个场景,后期新场景添加进来,我们可能再调整场景的顺序。

添加一个UI->Image,选择一个背景图片;

添加3个UI->Canvas,分别取名叫Player0,Player1,Player2,代表玩家,对手1,对手2;

每个Player底下,添加一个Image,选择卡牌背面图片,分别表示发牌时各自牌堆的位置,并在桌面放置一个总牌堆的位置,默认not active;

建一个卡牌的图片,命名为Card,并作为预制件,放入Player0中间一个,稍微偏移一定位置再放置一个,用来计算每张牌跟临牌相对位置,设置not active;

建一个卡牌的背面图片,命名Cover,也作为预制件;

添加一个测试按钮TestButton;

差不多了,大概结构如下:

创建卡牌、玩家信息

1.新建CardInfo类,主要不要继承默认的MonoBehaviour类,用来作为卡牌的实体类;

实现IComparable接口,后面手牌排序会用到。

2.Card预制件上,添加Card脚本,主要保存对应CardInfo信息、选中状态,并加载卡牌图片;

3.考虑玩家分为2种类型,先创建一个公共的基类,实现玩家公共的方法,比如增加一张卡牌、清空所有卡片、排序等;

4.添加第一种玩家(自身玩家)PlayerSelf,继承Player,并挂载到Player0对象上;

实现整理手牌的逻辑:发牌后,从中间的位置,根据大小依次将牌展开;

获取牌面点击事件,将牌选中或取消选中;

5.添加另一种玩家(对手玩家)PlayerOther,继承Player,并挂载到Player1,Player2对象上;

在Camera上添加卡牌管理脚本:CardManager

1.实现洗牌逻辑,这里用生成GUID随机性后排序,达到洗牌的目的;

2.记录当前发牌回合,每发一张牌,跳转给下一个玩家;

3.记录当前玩牌回合(将来可能用到),每玩一局,跳转下个玩家开始发牌;

4.发牌逻辑:

设置牌堆的显示,动画依次给每位玩家发一张卡牌,发完牌后,隐藏牌堆,并将玩家的卡牌排序并展示。

以上就是小编的Unity3D棋牌游戏教程了,详细代码欢迎前来咨询~

如果你还觉得不过瘾的话,就可以尝试反编译一些市面上流行的Unity3D游戏来获取代码,毕竟真实生产环境中的代码才是最值得深入研究的

在完成以上的学习过程中,看一些第三方的博客也是蛮有用的手段,在这里推荐下小编学习Unity3d的网站,从基础的数据类型讲起,到后期的面向对象,正则表达式,包含委托事件特性等高级课程。这套课程非常全面,从入门到就业全包啦!

/video/BV1wZ4y1A7if

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。