bool LightsHolder::init(std::vector<LightEffect *> effectsArray, Sprite *image) {
        if (initGLProgramState("Assets/image/makkajai/Shaders3D/pointlight.frag")) {
            _effectsArray = effectsArray;
            int idx = 0;

            sprite = image;
            for (auto &ef : _effectsArray) {

                if (ef != nullptr) {

                    v3Color[idx] = Vec3(ef->getLightColor().r, ef->getLightColor().g, ef->getLightColor().b) / 255;

                    lightCutoffRadius[idx] = ef->getLightCutoffRadius();
                    lightHalfRadius[idx] = ef->getLightHalfRadius();

                    Point posRelToSprite = PointApplyAffineTransform(Point(ef->getLightPos().x, ef->getLightPos().y),
                            sprite->getWorldToNodeAffineTransform());
                    _lightPos[idx] = Vec3(posRelToSprite.x, posRelToSprite.y, ef->getLightPos().z);


                    brightness[idx] = ef->getBrightness();
                }
                idx++;
            }
            _lightsNumber = idx;
            setLightColor();
            setAmbientLightColor(cocos2d::Color3B(55, 55, 55));
            setLightCutoffRadius();
            setLightHalfRadius();
            //  setBrightness();
            return true;
        }
        return false;
    }
bool LightEffect::init()
{

    setLightColor(cocos2d::Color3B::WHITE);
    setLightCutoffRadius(500.0f);
    setLightHalfRadius(0.5f);
    
    
    return true;

}
Esempio n. 3
0
bool LightEffect::init()
{
    if (initGLProgramState("pointlight.frag"))
    {
        setLightColor(cocos2d::Color3B::WHITE);
        setAmbientLightColor(cocos2d::Color3B(127,127,127));
        setLightCutoffRadius(500.0f);
        setLightHalfRadius(0.5f);
        return true;
    }
    return false;
}