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

cocos2d-x基础学习--编写自己的精灵类,第1张

概述        近来的空余时间比较充分,出于个人的兴趣,来学习一下cocos2d游戏开发。在cocos2d中最基本,也最经常使用的就是精灵类,对于游戏中的不同人物,我们经常使用自己类对精灵进行一个封装,做个简单的笔记,如何封装自己的精灵类。         第一步:重写自己的精灵类继承基类Sprite,实现virtual方法init            1)头文件: #include "coco

近来的空余时间比较充分,出于个人的兴趣,来学习一下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的宏。 总结

以上是内存溢出为你收集整理的cocos2d-x基础学习--编写自己的精灵类全部内容,希望文章能够帮你解决cocos2d-x基础学习--编写自己的精灵类所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存