接上续,东西还没有做完 所以代码免不了改动

之前的头文件现在又改了不少,因为架构也改变了现在主要类就是GameScene、GameUI、PlayInfo、Poker这四个类  前面想的GameLoop 已经被弃

目前除了身份、武将等相关的高级功能还没添加,基本功能只剩下 出牌策略没做了。

贴一下GameUI新的头文件

#pragma once
/*
主游戏界面UI

*/

#include "cocos2d.h"
#include "ui/CocosGUI.h"

USING_NS_CC;
class PlayInfo;
class Poker;
class GameUI:public cocos2d::Layer
{
//friend class GameScene;
public:
bool init();

virtual void onEnter();
virtual void onExit();

void menuReOpen(Ref*pSender);//重开
void menuExit(Ref*pSender);//退出游戏
void menuaddpoker(Ref*pSender);
void menuusepoker(Ref*pSender);
void menugiveuppoker(Ref*pSender);

void update(float delta);
/* 玩家摸牌 显示 */
void addPoker( int ,int);
/* 玩家使用牌(包括回合内外) 显示 */
void usePoker(int num=1);
/* 玩家弃牌 显示 */
void giveupPoker( );
/* 电脑玩家弃牌 显示*/
void giveupPoke_Robot(int );
void fun1(Ref*);
/*弃牌堆的更新*/
void Updategiveupheap();

CREATE_FUNC(GameUI);

//初始化角色信息
void initRoleInfo(PlayInfo* player);
//更新角色信息(显示)
void UpdateRoleInfo(PlayInfo*player);

//初始化对手信息
void initFoeInfo(PlayInfo* player);
//更新对手信息(显示)
void UpdatFoeInfo(PlayInfo*player);

Label*CurrenState;
bool isAddPoker;
void CountDown(float dt=5.0f);//倒计时函数实现延时功能
void setTimeBarwithtime(float );
bool isCountDown;//是否在读条 即调用了CountDown
bool isEndUsePokeState;//是否结束出牌阶段

void SwapTimeBar();//交换当前回合的时间读条指针,令当前回合进行读条的Loadingbar 指针指向play的时间读条指针

void UpdateShowPokerSlot(PlayInfo*);//更新手牌槽,外部调用
void DrawShowPokerSlot();//绘制手牌槽的牌
void addgiveupheap(Poker*);//添加牌到弃牌堆
private:
std::vector<Poker*>showpokerslot;//玩家需要显示的手牌槽
std::vector<int>showIntslot;
std::vector<Poker*>giveupPokerHeap;//弃牌堆
Sprite*bg;//背景图片
Sprite*equipment;//装备栏图片
Sprite*pokerSlot;//手牌槽背景图片
Sprite*rolePicInfo;//角色ui图片信息
//Vector<Sprite*>roleHealthInfo;

Sprite*foeInfoShow;

ui::LoadingBar* timebar;
ui::LoadingBar* timebarRobot;

Label* timelabel;

Label*_showOurPokerNums;
Label*_showFoePokerNums;

};

------------------------------

虽然还有很多坑,但是基本流程是完成了

暂时放下来,有时间再填坑

https://github.com/huzhongyidihao/sanguosha

cocos2dx实现单机版三国杀(二)的更多相关文章

  1. cocos2dx实现单机版三国杀(一)

    首先需要一个UI交互类 GameUI   -layer 一个游戏驱动类,负责游戏逻辑的循环 暂时定为GameScene- scene GameScene obj 调用update 更新游戏,addch ...

  2. cocos2dx 制作单机麻将(二)

    cocos2dx 制作单机麻将(二) 打乱麻将顺序2 前面解说了怎样打乱初始给定的麻将牌堆, 另一种是打乱随意给定的麻将牌堆 //混乱扑克2 void RandAppointCardData(BYTE ...

  3. 转 cocos2dx内存优化 (之二)

    一.cocos2dx之如何优化内存使用(高级篇) 本文由qinning199原创,转载请注明:http://www.cocos2dx.net/?p=93 一.内存优化原则 为了优化应用内存,你应该知道 ...

  4. cocos2d-x 滚动文字(二)

    http://blog.csdn.net/kuovane/article/details/8131789 首先送上demo,下载地址为:demo下载地址 一,怎么在文字前面空两隔?只需在xml里的文字 ...

  5. cocos2d-x开发记录:二,基本概念(动作,动画,坐标系统)

    既然我们选择用cocos2d,那么他里面的一些基本概念我们肯定是要熟悉下的,以下资料来源于官网,英语好的可以直接去官网看. 一.Actions(动作) 动作都由于CCNode对象发出.这些动作通常修改 ...

  6. cocos2dx lua 绑定之二:手动绑定自定义类中的函数

    cococs2dx 3.13.1 + vs2013 + win10 1.首先按照<cocos2dx lua 绑定之一:自动绑定自定义类>绑定Student类 2.在Student类中增加一 ...

  7. Cocos2d-x内存管理研究<二>

    http://hi.baidu.com/tzkt623/item/46a26805adf7e938a3332a04   上一篇我们讲了内核是如何将指针加入管理类进行管理.这次我将分析一下内核是如何自动 ...

  8. cocos2d-x的初步学习二十一之iosandroid跨平台环境配置

    这篇文章中,我们将来构建下跨平台开发的环境配置,我自己也是参考了别人了文章,折腾了几个小时,尤其是android的配置相对麻烦些.... 参考自子龙山人:http://www.cnblogs.com/ ...

  9. 场景切换特效Transition——Cocos2d-x学习历程(十二)

    Transition 场景切换 在游戏中通常会用到一些场景的切换,比如从加载界面切换到欢迎界面.游戏中的所有场景存放在一个栈中,有且只有一个场景可以处于激活状态.直接replaceScene(即不适用 ...

随机推荐

  1. 分金币 (UVA 11300)

    http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33899 思路:推公式,发现可以转化为求给定n个数,求到所有点距离之和最小的点 ...

  2. [bzoj4591][Shoi2015][超能粒子炮·改] (lucas定理+组合计数)

    Description 曾经发明了脑洞治疗仪&超能粒子炮的发明家SHTSC又公开了他的新发明:超能粒子炮·改--一种可以发射威力更加 强大的粒子流的神秘装置.超能粒子炮·改相比超能粒子炮,在威 ...

  3. ds020507

    芯片输出端不加负载的时候,芯片的输出电压是9点多伏. 加上大的负载,芯片发热,电压接近输入电压. 正常负载,芯片输出7.0几伏. 版权声明:本文为博主原创文章,未经博主允许不得转载.

  4. Spring AOP 学习(五)

    1. 使用动态代理实现AOP package com.atguigu.spring.aop; import java.lang.reflect.InvocationHandler; import ja ...

  5. 百练2755:神奇的口袋(简单dp)

    描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an.John可以从这些物品中选择一些 ...

  6. java 源码分析2 -List

    1.是一个接口,继承了Collection,提供了size(),isEmpty(),contanis(),iterator(),toArray(),clear()等方法 2.分析常用的ArrayLis ...

  7. TreeView获取目录下的所有文件

    /// <summary> /// TreeView获取目录下的所有文件 /// </summary> /// <param name="tree"& ...

  8. CocoaAsyncSocket网络通信使用之数据编码和解码(二)

    CocoaAsyncSocket网络通信使用之数据编码和解码(二) 在上一篇CocoaAsyncSocket网络通信使用之tcp连接(一)中,我们已经利用CocoaAsyncSocket封装了自己的s ...

  9. android传感器;摇一摇抽签功能

    package com.kane.sensortest; import java.util.Random; import android.hardware.Sensor; import android ...

  10. IOS - UIView停止交互

    UIView停止交互(失去焦点): 设置userInteractionEnabled=NO, 获取交互设置YES. 能够应用于UIButton, UITextField等交互型控件. [editBut ...