从游戏运行过程来分析斗地主设计思路
来源:互联网 发布:什么梳子对头发好 知乎 编辑:程序博客网 时间:2024/04/30 10:41
<1>第一步
1,进入GameScene构造函数,进行各个数据成员的创建(只是创建这里并没有初始化,各种程序初始化信息的具体实现是在init函数中,由各个init**函数来实现)。
2,与之对应的是析构函数~GameScene(),它完成数据的一些清理工作,在构造函 数中new出来的,那就CC_SAFE_DELETE,通过create()出来并且retain的,那就CC_SAFE_RELEASE。
<2>第二步
1,进入init函数,在其中完成程序信息的具体初始化。
比如: A,初始化背景(这个背景略蛋疼,像素是800,600导致后边屏幕像素适配很麻烦)
B,创建一副扑克(放在桌子正中间,并且是朝背面摆放)
C,初始化玩家信息并且设定好位置类型等(这里的玩家不仅包括玩家、电脑、还有底牌、出的牌等)
D,洗牌(运用数组的randomObject和exchangeObject函数来实现洗牌)
E,初始化菜单信息。(叫分的、出牌不出的、胜负等菜单,里面的各个菜单项采用局部变量
并且初始化时将菜单隐藏掉,这样里面的菜单项就隐藏了,因为菜单是父节点,
父节点都隐藏了,子节点自然就都隐藏了)
F,初始化NPC不出牌按钮(因为出牌的话,自然就直接把牌出出来了,不出的话就显示一下不出就
行了,这个也是添加到层中后先隐藏起来)
G,初始化地主标签(设置默认地主的位置,并且隐藏起来)
H,开启scheduleUpdate来启动update定时器(从而每一帧都检测游戏当前状态,是发牌、叫分、出牌、还是胜负等状态。其实这个和碰撞检测的有点像,碰撞检测往往也开启这个定时器每一帧都进行碰撞检测,比较好的地方是这种手法的灵活运用,不像我第一次写的一直在考虑权限,比如地主和出牌权限是怎么传递的,把自己都传递蒙了)
<3>第三步
1,这个是比较重要的一步,它驱动着整个游戏的逻辑循环。由构造函数中的m_iState被初始化为0,因此
定时器一旦开启后,第一步就是游戏开始发牌,发牌的过程中会调用回调函数调整牌的位置。
2,当发完54张牌后,改变m_iState的数值为1,进入第二个游戏状态:叫分。
玩家叫分void NpcCall(Player* npc,Player* npc1),第二个参数只是为了通知他,当自己叫最大分
时,他不能再叫分了。
3,叫完地主后,改变游戏状态m_iState为2,即出牌。同时卸下叫分定时器。
4, /**玩家出牌与跟牌**/
出牌类型分为2种:跟牌和出牌。(当2个Npc都没有出牌时,自己出牌;当有Npc出牌时,自己
需要跟牌,跟牌最基本的就是要大于之前NPC要出的牌。不管是NPC还是玩家,每出一次牌都会调
用IsOutPkFinish来判断是否是否有人出完牌,当有人出完牌,立即改变游戏状态m_iState来判断输
赢)
出牌过程:
A,清理上次出的牌。
B,
/**NPC出牌与跟牌**/
A,NpcOutPoker(m_npcTwo,m_arrGenPk,m_npcTwoOut);
B,NpcGenPoker(m_npcTwo,m_arrGenPk ,m_npcTwoOut);
由此可见,Npc出牌和跟牌过程中,第二个和第三个参数很有意思。要出的牌,也就是要跟的牌。
- 从游戏运行过程来分析斗地主设计思路
- 从AI的角度来分析斗地主设计
- 设计思路JAVA斗地主
- 斗地主算法思路
- 斗地主游戏源码
- 斗地主游戏准备工作.
- 斗地主游戏算法
- 斗地主游戏
- h5斗地主房卡源码下载斗地主游戏的示例代码分析
- 斗地主服务端设计
- 斗地主项目设计
- 斗地主AI设计
- 斗地主AI设计
- 棋牌AI思路--斗地主
- Android斗地主游戏源码
- Html5 Canvas斗地主游戏
- 扑克游戏斗地主算法
- 斗地主游戏-应用程序-01
- jquery实现左右上下移动
- 惠州市聚福金银珠宝有限公司全城免费wifi项目
- java 反射实现javabean转json
- uip协议栈移植到window
- javaEE开发之获取spring管理的bean工具类
- 从游戏运行过程来分析斗地主设计思路
- fmt:formatDate的输出格式
- “好友”不给我点“赞”
- Java异常处理机制
- 实在、接地气,迄今见过最好的职业规划的文章
- 可变参数问题
- OpenGL采用显示列表显示文字完整范例
- py 函数
- 写给大家看的编程规范