大佬教程收集整理的这篇文章主要介绍了cocos2dx《单机斗地主》源码解剖之一 创建一副扑克牌(54张),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
本项目基于cocos2dx引擎开发,根据网上搜索的斗地主文案(参见博客:斗地主规则)由本人独立完成,废话少说(本人不善言辞,我也说不出来什么废话)下面我来做个项目总结。
1.创建一副扑克牌,写代码首先创建一张牌的类。如下所示:
class Poker : public Sprite { public: Poker(); ~Poker(); static Poker* create(const char *pszFilename,const cCRect& rect); virtual void onEnter(); virtual void onExit(); virtual bool onTouchBegan(CCTouch *pTouch,CCEvent *pEvent); virtual void onTouchMoved(CCTouch *pTouch,CCEvent *pEvent); virtual void onTouchEnded(CCTouch *pTouch,CCEvent *pEvent); virtual void onTouchCancelled(CCTouch *pTouch,CCEvent *pEvent); void showFront();//显示正面 void showLast();//显示背面 Poker* copy();//拷贝 void setTouchPriority(int num); void SELEctPkLuTou();//如果选择了牌就露出头 void SELEctPkSuoTou();//如果选择了牌就缩头 private: CC_SYNTHESIZE(bool,m_isSELEct,SELEct);//是否已选 CC_SYNTHESIZE(GameScene*,m_gameMain,GameMain); CC_SYNTHESIZE(bool,m_isDianJi,DianJi);//是否能被点击 CC_SYNTHESIZE(int,m_huaSe,HuaSE);//花色 CC_SYNTHESIZE(int,m_num,Num);//牌值 EventListenerTouchOneByOne* touchListener; };然后我们用这个类写了一个函数来生成一张牌,该函数如下(位于源码GameScene中):
Poker* GameScene::SELEctPoker(int huaSe,int num){ Poker* pk; if(huaSe != Gui) pk = Poker::create("poker.png",CCRect(num*pkWidth,huaSe*pkHeight,pkWidth,pkHeight)); else pk = Poker::create("poker.png",CCRect((num-XiaoGui)*pkWidth,pkHeight)); pk->setHuaSe(huaSE); pk->setNum(num); pk->setGameMain(this); return pk; }
bool GameScene::createPokers(){ bool isRet = false; do { Size size = Director::sharedDirector()->getVisibleSize(); Poker* pk; //创建52个除大鬼小鬼外的牌 for (int i=0; i<4; ++i) { for (int j=0; j<13; ++j) { pk = SELEctPoker(i,j); pk->setPosition(ccp(size.width/2/*+j*20*/,size.height/2/*-i*20*/)); pk->showLast(); this->addChild(pk); this->m_arrPokers->addObject(pk); } } //创建小鬼 pk = SELEctPoker(Gui,XiaoGui); pk->setPosition(ccp(size.width/2,size.height/2/*-4*20*/)); pk->showLast(); this->addChild(pk); this->m_arrPokers->addObject(pk); //创建大鬼 pk = SELEctPoker(Gui,DaGui); pk->setPosition(ccp(size.width/2/*+20*/,size.height/2/*-4*20*/)); pk->showLast(); this->addChild(pk); this->m_arrPokers->addObject(pk); isRet = true; } while (0); return isRet; }源码下载:@R_674_10107@://pan.baidu.com/s/1ntzayjJ
以上是大佬教程为你收集整理的cocos2dx《单机斗地主》源码解剖之一 创建一副扑克牌(54张)全部内容,希望文章能够帮你解决cocos2dx《单机斗地主》源码解剖之一 创建一副扑克牌(54张)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。