Изменение альфы в Cinder

Я пытаюсь, чтобы мои частицы со временем исчезали. Я, кажется, совсем не изменяю непрозрачность. Есть идеи, в чем проблема?

class Particle
{

public:

Particle();
Particle( ci::Vec2f );
void update();
void draw();

ci::Vec2f   mLoc;
ci::Vec2f   mDir;
float       mVel;
float       trans;

ci::ColorA       mColor;
float           mRadius;

float col_1,col_2,col_3;
};void Particle::update()
{
mLoc+=mDir*mVel/2;
trans+=0.1;
mColor=ColorA(col_1,col_2,col_3,trans);
}

void Particle::draw()
{
gl::color(mColor);
gl::drawSolidCircle(mLoc,mRadius);
}

0

Решение

Похоже, вам нужно включить альфа-смешивание, например:

gl::enableAlphaBlending();
gl::color( mColor );

gl::drawSolidCircle(mLoc,mRadius);

gl::disableAlphaBlending();

Это обсуждение имеет больше деталей: http://forum.libcinder.org/topic/beginner-question-changing-alpha-of-a-texture#23286000000675041

2

Другие решения

Приведенное ниже утверждение увеличивает альфа, а не уменьшает его, то есть исчезает.

trans += 0.1;

Заменить выше на

trans -= 0.1;

Кроме того, я бы предположил, что ваша установка «trans» изначально в конструкторе или какой-то такой метод установки.

0