cocos2dx实现单机版三国杀(一)
首先需要一個UI交互類 GameUI ? -layer
一個游戲驅(qū)動類,負(fù)責(zé)游戲邏輯的循環(huán) 暫時定為GameScene- scene?
GameScene obj 調(diào)用update 更新游戲,addchild gameUI obj 呈現(xiàn)UI.
上面的都是cocos2d 類
下面需要一些輔助類
比如 PlayerInfo 玩家信息類,存儲玩家信息;Poker 類 負(fù)責(zé)構(gòu)建我們的牌(主要是顯示在 gameui obj 上)。
gamescene obj ?負(fù)責(zé)更新 playerinfo obj date,而gameui obj 負(fù)責(zé)呈現(xiàn) playerinfo obj ?date,比如玩家頭像、生命、裝備等等。
Poker 類主要構(gòu)建于 gameui obj 繪制牌,因為poker類只有一個sprite_pic 需要繪制,故我在進(jìn)行非繪制操作時,對于牌的操作是以int來代表具體的牌型(因為暫時牌型較少,且
忽視 花色和數(shù)字),當(dāng)需要繪制牌時,只需要根據(jù)傳入的int 來翻譯成指定類型的xx.png圖片,在畫面上就是一張指定的牌。
牌的繪制必然是因為玩家信息的改變(手牌數(shù)),所以需要實現(xiàn)畫面和數(shù)據(jù)的"同步更新",比如為playerinfo obj ->手牌槽 添加元素a時,gameui obj 也需要構(gòu)建 a對應(yīng)的poker 。
暫時還沒考慮用牌,只有摸牌和棄牌。牌堆由gameScene obj 調(diào)用洗牌function 實現(xiàn),每次調(diào)用"創(chuàng)建"一個新的牌堆,實現(xiàn)是 總元素兩兩隨機交換位置,執(zhí)行l(wèi)ength-1次。
游戲邏輯的循環(huán)由update實現(xiàn),主要是判斷 isgameover->switch(currenstatet){ ?case state1,case state2..... ?}?siwtch 負(fù)責(zé)各階段操作.
//下面是已經(jīng)寫了的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);
/* 玩家使用牌(包括回合內(nèi)外) 顯示 */
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
總結(jié)
以上是生活随笔為你收集整理的cocos2dx实现单机版三国杀(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 知识点:Office插入数学公式常用的快
- 下一篇: 圆形面积与周长(仅用于个人记录)