zoukankan      html  css  js  c++  java
  • 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;

    };

  • 相关阅读:
    浅谈Linux的内存管理机制
    [SCM]源码管理 perforce状态的检测
    轻松构建Mysql高可用集群系统
    [BuildRelease].NET代码静态检测FxCop
    Ant高级task
    Jenkins master在windows上安装
    Jenkins的Windows Slave的配置
    Jenkins的配置
    [BuildRelease]跨平台build脚本
    使用Synergy多台电脑共享键盘鼠标和剪贴板
  • 原文地址:https://www.cnblogs.com/yuedongdeguangzi/p/8643276.html
Copyright © 2011-2022 走看看