您好我试图用颜色填充原始圆,然后将颜色不透明度设置为50%透明。 我在网上搜索并没有找到任何解决方案只有cocos2d-iphone的东西。 我创建继承自精灵 它确实让我画圈。
void CircleSprite::draw(void)
{
glLineWidth(2);
cocos2d::ccDrawColor4B(0, 255, 255, 255);
cocos2d::ccDrawCircle( ccp(100/2, 100/2), 50, CC_DEGREES_TO_RADIANS(90), 50, false);
}
#ifndef __CIRCLESPRITE_H__
#define __CIRCLESPRITE_H__
#include "cocos2d.h"
class CircleSprite : public cocos2d::CCSprite
{
public :
virtual void draw(void);
private:
};
#endif
in the main loop :
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
CCSprite* cloud = drowCloud();
cloud->setPosition(ccp(cloud->getContentSize().width/2,winSize.height/2));
this->addChild(cloud);
CCSprite* HelloWorld::drowCloud()
{
CCSprite * pCloud = new CircleSprite();
return pCloud;
}
答案 0 :(得分:4)
之前:
这 - >的addChild(云);
只需添加以下行:
<强>云&GT; setOpacity(128); 强>
不透明度值为0到255
干杯, 阿德
答案 1 :(得分:0)
对于各种自定义绘图更好地使用oTable.search(this.value)
,但不幸的是,基本的DrawNode本身无法处理不透明度(此功能在cocos2d-4。*的计划中)。因此,如果类AlphaNode从DrawNode继承,我们可以像这样定义setOpacity(在cocos2dx-3-13测试):
DrawNode
在生产中使用之前,最好先检查一下此目标平台的性能,因为它的“无需授权”解决方案。
啊,是的,对于绘制圆圈,有方法void AlphaNode::setOpacity(GLubyte opac) {
mOpacity = opac;
if (_bufferCount) {
for (int i = 0; i < _bufferCount; i++) {
_buffer[i].colors.a = mOpacity;
}
}
if (_bufferCountGLPoint) {
for (int i = 0; i < _bufferCountGLPoint; i++) {
_bufferGLPoint[i].colors.a = mOpacity;
}
}
if (_bufferCountGLLine) {
for (int i = 0; i < _bufferCountGLLine; i++) {
_bufferGLLine[i].colors.a = mOpacity;
}
_dirtyGLLine = true;
}
_dirty = true;
}
和drawSolidCircle
。