首先需要一个UI交互类 GameUI   -layer

一个游戏驱动类,负责游戏逻辑的循环 暂时定为GameScene- scene

GameScene obj 调用update 更新游戏,addchild gameUI obj 呈现UI.

上面的都是cocos2d 类

下面需要一些辅助类

比如 PlayerInfo 玩家信息类,存储玩家信息;Poker 类 负责构建我们的牌(主要是显示在 gameui obj 上)。

gamescene obj  负责更新 playerinfo obj date,而gameui obj 负责呈现 playerinfo obj  date,比如玩家头像、生命、装备等等。

Poker 类主要构建于 gameui obj 绘制牌,因为poker类只有一个sprite_pic 需要绘制,故我在进行非绘制操作时,对于牌的操作是以int来代表具体的牌型(因为暂时牌型较少,且

忽视 花色和数字),当需要绘制牌时,只需要根据传入的int 来翻译成指定类型的xx.png图片,在画面上就是一张指定的牌。

牌的绘制必然是因为玩家信息的改变(手牌数),所以需要实现画面和数据的"同步更新",比如为playerinfo obj ->手牌槽 添加元素a时,gameui obj 也需要构建 a对应的poker 。

暂时还没考虑用牌,只有摸牌和弃牌。牌堆由gameScene obj 调用洗牌function 实现,每次调用"创建"一个新的牌堆,实现是 总元素两两随机交换位置,执行length-1次。

游戏逻辑的循环由update实现,主要是判断 isgameover->switch(currenstatet){  case state1,case state2.....  } siwtch 负责各阶段操作.

//下面是已经写了的gameui 声明

#pragma once
/*
主游戏界面UI

*/

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

USING_NS_CC;
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();
/* 玩家摸牌 显示 */
void addPoker( int ,int);
/* 玩家使用牌(包括回合内外) 显示 */
void usePoker(int num=1);
/* 玩家弃牌 显示 */
void giveupPoker();

CREATE_FUNC(GameUI);

//初始化角色信息
void initRoleInfo(PlayInfo* player);

//初始化对手信息
void initFoeInfo(PlayInfo* player);

Label*CurrenState;
private:
std::vector<Poker*>showpokerslot;
Sprite*bg;//背景图片
Sprite*equipment;//装备栏图片
Sprite*pokerSlot;//手牌槽背景图片
Sprite*rolePicInfo;//角色ui图片信息
//Vector<Sprite*>roleHealthInfo;

Sprite*foeInfoShow;

Label* timelabel;
float time;

};

搬运自:https://www.cnblogs.com/yuedongdeguangzi/p/8643276.html

cocos2dx实现单机版三国杀(一)相关推荐

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

    接上续,东西还没有做完 所以代码免不了改动 之前的头文件现在又改了不少,因为架构也改变了现在主要类就是GameScene.GameUI.PlayInfo.Poker这四个类  前面想的GameLoop ...

  2. c语言编三国杀 游戏代码,简易单机版三国杀游戏的设计与实现(附答辩记录)

    简易单机版三国杀游戏的设计与实现(附答辩记录)(包含选题审批表,任务书,开题报告,中期报告,毕业论文7400字,程序代码) 摘  要:随着现在社会的生活节奏越来越快,人们生活的越来越紧张,需要一定的游 ...

  3. Java Swing版单机版三国杀

    原文:Java Swing版单机版三国杀 源代码下载地址:http://www.zuidaima.com/share/1584513538509824.htm

  4. 网络版控制台三国杀结构图

    一.简介 这个网络版控制台三国杀是在原来单机版上加入网络通信功能制作出来的,从第一版到第三版用了大半年时间,也算是我大一学习C++历程的里程碑吧. 它可以选择进行几人局的游戏(2~10人),所用游戏包 ...

  5. 470计算机毕业设计

    原创基于网络的文件传阅系统(PHP)(程序,毕业论文,外文翻译,文献综述)-SQL附选题表.rar http://dl.vmall.com/c09bbipv2m 原创24点游戏的开发和实现(Andro ...

  6. 微信小程序在url简化_简化对Web应用程序的数据分析

    微信小程序在url简化 数据(Analytics / ML)到应用程序-零痛苦 (Data (Analytics/ML) to App - with zero pain) We all want to ...

  7. 三国杀虚拟服务器设置,三国杀单机版怎么玩?太阳神三国杀联网设置教程

    如何进行游戏: 首先点击 之后会弹出连接主机的窗口 说明: 名称:你在游戏中所显示的ID 密码:一般无需填写,当有比赛时才会用到 主机/端口:填写你准备连接的服务器地址/端口 如果主机/端口未填写错误 ...

  8. 三国杀Excel版–让你见证Excel的神奇

    三国杀Excel版–让你见证Excel的神奇 发表于:2011-06-27 12:34标签: 三国杀是个最近很火的游戏啊,但是盛大的游戏只能联网玩,在没网的时候很不爽 . root 一直在找单机版的三 ...

  9. 自己写三国杀之架构分析

    本文分析的是三国杀标准包+EX扩展包所带的功能如何在我的程序里实现的,不包括其他的扩展包.实际的程序可以支持2至10人在控制台下进行网络对战.博主仅仅凭兴趣写的,设计有缺陷,请多多包涵. 代码下载地址 ...

最新文章

  1. 修改服务器文件系统为xfs,CentOS Linux如何无损调整分区大小(XFS文件系统)
  2. 2019信安国赛逆向easyGo,bbvvmm题解
  3. 想起温习一下JS中的this apply call arguments
  4. java容器怎么封装的_docker怎么把容器打包成镜像
  5. SQLite学习(八) - SQLite C编程接口
  6. java 课后习题 判断用户输入的数是否为质数
  7. Maven依赖的Scope去除部署不需要的jar 包(打包)
  8. 萌新的Python练习菜鸟100例(十一)生兔子练习
  9. 赛尔笔记 | 通用领域条件性知识图谱数据集
  10. 智能优化算法:鲸鱼优化算法-附代码
  11. nfine mysql_全开源版NFine快速开发框架C#源码
  12. canon iPF 系列保养墨盒清零方法
  13. ASP.NET大作业/ASP.NET期末项目/大作业
  14. 指纹锁与数字密码锁哪个更安全靠谱?
  15. Redis6笔记分享(从NoSQL基础到分布式锁的介绍)
  16. SpringBoot----[9]---Spring Boot JdbcTemplate
  17. C++ 单冒号: 和双冒号:: 的作用
  18. 读《壹百度》—29条法则有感
  19. CE认证是什么,好处是什么?
  20. matlab画圆柱,Matlab 画三维圆柱体

热门文章

  1. python中的mul函数_mul函数的具体用法
  2. 极客时间和极客学院_2012年9月最佳极客技巧文章
  3. 矩阵对角线翻折问题研究
  4. 开源数据版本管理组件 -- VersionRepository
  5. 04 Android 植物人大战僵尸-卡片的触摸事件
  6. BTC反弹重回11300 USDT
  7. 全网最牛掰的 12306 抢票神器,助力抢到春节回家的票
  8. 手机获取短信验证码登陆
  9. 英语发音之音标---对比法(7个短元音和ghywr和谁的对比发音)
  10. office365之imap迁移