展会信息港展会大全

Cocos2d-X中实现批处理精灵
来源:互联网   发布日期:2015-09-27 15:59:16   浏览:1139次  

导读: 使用普通方法实现批处理精灵 在Sprite.h中添加下面的代码 #ifndef __Sprite_SCENE_H__ #define __Sprite_SCENE_H__ #include ...

使用普通方法实现批处理精灵

在Sprite.h中添加下面的代码

#ifndef __Sprite_SCENE_H__

#define __Sprite_SCENE_H__

#include "cocos2d.h"

USING_NS_CC;

class Sprite : public CCLayer

{

public:

//初始化层

bool init();

//创建场景

static CCScene* scene();

//响应触摸

bool Sprite::ccTouchBegan(CCTouch* touch, CCEvent*);

//用于创建:场景、菜单、层等东西

CREATE_FUNC(Sprite);

};

#endif // __Sprite_SCENE_H__

在Sprite.cpp中添加下面的代码

#include "Sprite.h"

USING_NS_CC;

//创建场景

CCScene* Sprite::scene()

{

//创建场景

CCScene *scene = CCScene::create();

//创建层

Sprite *layer = Sprite::create();

//将层加到场景上

scene->addChild(layer);

//返回场景

return scene;

}

//初始化实例句柄

bool Sprite::init()

{

//初始化父类CCLayer

CCLayer::init();

//得到窗口的尺寸

CCSize winSize = CCDirector::sharedDirector()->getWinSize();

//设置坐标

CCPoint ptCenter = ccp(winSize.width / 2, winSize.height / 2);

//创建一个批处理结点容器

CCSpriteBatchNode* batch = CCSpriteBatchNode::create("CloseNormal.png");

//将精灵加到层中

addChild(batch);

//使用纹理创建精灵

CCSprite* sprite = CCSprite::createWithTexture(batch->getTexture());

//将精灵加到容器上

batch->addChild(sprite);

//设置精灵的位置

sprite->setPosition(ptCenter);

//设置触摸

setTouchEnabled(true);

setTouchMode(kCCTouchesOneByOne);

return true;

}

//响应触摸

bool Sprite::ccTouchBegan(CCTouch* touch, CCEvent*)

{

//得到窗口的尺寸

CCSize winSize = CCDirector::sharedDirector()->getWinSize();

//循环100次,创建1000个精灵

for (int i = 0; i setPosition(ccp(CCRANDOM_0_1()*winSize.width, CCRANDOM_0_1()* winSize.height));

}

return true;

}

执行结果:

1、打开程序后的效果:启动程序后帧率为58.7

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港