cocos2dx实现单机版三国杀(一)
首先需要一个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;
};
最新文章
- HDU 5008 Boring String Problem(后缀数组+二分)
- Angular常用功能
- 加jdk语句
- java反射基本使用操作
- 国内 Composer 镜像收集
- Java设计模式-中介者模式(Mediator)
- 1005. 继续(3n+1)猜想 (25)
- pthread_create用法
- Hibernate框架后续
- Go语言Eclipse开发环境配置-Windows
- Database Change Notification
- 多线程之Lock的基本介绍
- 第一册:lesson seventy nine.
- 吉哥系列故事――恨7不成妻 HDU - 4507 数位dp
- android 内存泄漏,以及检测方法
- Spark学习笔记——构建基于Spark的推荐引擎
- SMTP发送邮件
- GDB和GDB Server
- 【python】网络编程-TCP协议套接字
- 简明python教程 --C++程序员的视角(六):输入输出IO
热门文章
- Tree(树的还原以及树的dfs遍历)
- codechef营养题 第三弹
- 基于XML文档的声明式事务配置
- @Value取值为NULL的解决方案------https://blog.csdn.net/zzmlake/article/details/54946346
- 模拟select控件功能
- java方法的虚分派和方法表
- 多项式输出 2009年NOIP全国联赛普及组
- 夜话JAVA设计模式之适配器模式(adapter pattern)
- c++中的set_new_handler和new_handler
- 苹果iOS手机后门的”诊断功能论“不攻自破