cocos2dx《单机斗地主》源码解剖之一 创建一副扑克牌(54张)

cocos2dx《单机斗地主》源码解剖之一 创建一副扑克牌(54张),第1张

概述本项目基于cocos2dx引擎开发,根据网上搜索的斗地主文案(参见博客:斗地主规则)由本人独立完成,废话少说(本人不善言辞,我也说不出来什么废话)下面我来做个项目总结。 1.创建一副扑克牌,写代码首先创建一张牌的类。如下所示: class Poker : public Sprite{public: Poker(); ~Poker(); static Poker* create(const

本项目基于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;}

poker.png图片如下:
2.接下来我们就用来创建一副扑克牌了,请看代码(在GameScene文件中)GameScene
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;}
源码下载:http://pan.baIDu.com/s/1ntzayjJ 总结

以上是内存溢出为你收集整理的cocos2dx《单机斗地主》源码解剖之一 创建一副扑克牌(54张)全部内容,希望文章能够帮你解决cocos2dx《单机斗地主》源码解剖之一 创建一副扑克牌(54张)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1040300.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存