cocos2d-x基础学习--编写自己的精灵类

        近来的空余时间比较充分,出于个人的兴趣,来学习一下cocos2d游戏开发。在cocos2d中最基本,也最经常使用的就是精灵类,对于游戏中的不同人物,我们经常使用自己类对精灵进行一个封装,做个简单的笔记,如何封装自己的精灵类。

        第一步:重写自己的精灵类继承基类Sprite,实现virtual方法init

           1)头文件:

#include "cocos2d.h"

#ifndef _MY_SPRITE_
#define _MY_SPRITE_

class MySprite : public cocos2d::Sprite{
public :
	virtual bool init();
	static MySprite* create();
		 
	//CREATE_FUNC(MySprite);

}
	 
#endif // !_MY_SPRITE_

              2)init方法
bool MySprite::init(){

	if(!Sprite::initWithFile("image.png")){
		return false;
	}
	//在这里进行一些精灵类的设置
	setScale(0.5f, 0.5f);//设置缩放
	setRotation(90);//顺时针方向
	return true;
}
         第二步:实现静态方法create方法,在create方法中创建新的MySprite,并调用init方法,同时将MySprite的生命周期交给程序来控制
MySprite* MySprite::create(){
    MySprite * sprite = new MySprite();
    if(sprite->init()){
        sprite->autorelease();//有程序控制sprite的生命周期,
    } else
    {
        delete sprite;
        sprite = NULL;
        return NULL;
    }
    return sprite;
}
             如果我们在头文件中声明CREATE_FUNC(MySprite),则表明我们主动实现了父类中没有参数的create方法

           第三步:在scene类中添加sprite

        auto s = MySprite::create();
	s->setPosition(Vec2(visibleSize.width/2 , visibleSize.height/2 ));//设置精灵的位置
	this->addChild(s);
          我们也可以向create和init方法中加入参数来区分自己的精灵类,这时就不能在使用CREATE_FUNC的宏。



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值