【cocos2dx】如何创建自己定义的精灵类Sprite

【cocos2dx】如何创建自己定义的精灵类Sprite,第1张

概述C++的知识的确不用都忘了。 写 *** 想要写一个扑克类Card,继承自Spirite,并且额外添加些自己的属性,比如说牌面大小及花色。那么我在card.h中定义这个类。并且重载Sprite::create(filename)方法。 //Card.h #pragma once#include "cocos2d.h"#include "define.h"USING_NS_CC;/*


C++的知识的确不用都忘了。


写 *** 想要写一个扑克类Card,继承自Spirite,并且额外添加些自己的属性,比如说牌面大小及花色。那么我在card.h中定义这个类。并且重载Sprite::create(filename)方法。


//Card.h #pragma once#include "cocos2d.h"#include "define.h"USING_NS_CC;/*we name the card such as "card_clubs_2.png"Clubs =  1,1 ~ 13Diamonds,2     14~ 26Hearts,3     27~ 39Spades,4     40~ 52we get a random number from 0 ~ 47 as num,we rename the pic_name as a number;*/class Card :public Sprite{public:	static Card* create(const char*);//重载	voID setCardID(int);	voID setCardname(char *);	voID setCardFace(int);	voID setCardSuit(int);	int getCardID();	int getCardFace();	int getCardSuit();	char * getCardname();	private:	int cardID;     // 0~51	char * cardname;	int cardFace;   //2 ~ 14	int cardSuit;   //0~3};

是如何重载create(filename)方法的呢?
Card * Card::create(const char* picfilename){		Card * sprite = new Card();	if (sprite&& sprite->initWithfile(picfilename))	{		sprite->autorelease(); return sprite;	}	CC_SAFE_DELETE(sprite);	return nullptr;}


在代码中使用Card类,创建对象。并在cclOG中调试,得到log

	auto my_testCard = Card::create("roomgirl.png");  // auto == Card	my_testCard->setposition(screenSize.wIDth / 2,screenSize.height - 200);	my_testCard->setScale(0.6);	my_testCard->setCardID(23);	this->addChild(my_testCard);	cclOG("my_testCard->ID = %d .",my_testCard->getCardID());//会得到log:my_testCard->ID = 23 .


参考文章:http://blog.csdn.net/fanzhang1990/article/details/40328297 (文章提供了2种方法,并且对原理进行了详细的分析)

总结

以上是内存溢出为你收集整理的【cocos2dx】如何创建自己定义的精灵类Sprite全部内容,希望文章能够帮你解决【cocos2dx】如何创建自己定义的精灵类Sprite所遇到的程序开发问题。

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

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

原文地址:https://www.54852.com/web/1057535.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存