diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f5c5f7a..cf03d250 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Fixed polyfill application by exporting a `polyfill()` function that can be called. ([#1132](https://github.com/excaliburjs/Excalibur/issues/1132)) +- Fixed Color.lighten() ([#1084]) diff --git a/src/engine/Drawing/Color.ts b/src/engine/Drawing/Color.ts index c405397b..ecdf61b6 100644 --- a/src/engine/Drawing/Color.ts +++ b/src/engine/Drawing/Color.ts @@ -105,7 +105,7 @@ export class Color { */ public lighten(factor: number = 0.1): Color { const temp = HSLColor.fromRGBA(this.r, this.g, this.b, this.a); - temp.l += temp.l * factor; + temp.l += (1 - temp.l) * factor; return temp.toRGBA(); } diff --git a/src/spec/ColorSpec.ts b/src/spec/ColorSpec.ts index 72f83c63..7fab44b2 100644 --- a/src/spec/ColorSpec.ts +++ b/src/spec/ColorSpec.ts @@ -100,6 +100,21 @@ describe('A color', () => { expect(color.b).toBe(229.5, 'b'); }); + it('can be lightened', () => { + color = ex.Color.Black.clone(); + color = color.lighten(); + expect(color.r).toBe(25.5, 'r'); + expect(color.g).toBe(25.5, 'g'); + expect(color.b).toBe(25.5, 'b'); + + color = ex.Color.White.clone(); + color = color.lighten(); + expect(color.r).toBe(255, 'r'); + expect(color.g).toBe(255, 'g'); + expect(color.b).toBe(255, 'b'); + + }); + it('can be averaged', () => { color = ex.Color.White.average(ex.Color.Black); expect(color.r).toBe(255 / 2, 'r'); diff --git a/src/spec/images/SpriteSpec/icon-lightened.png b/src/spec/images/SpriteSpec/icon-lightened.png index 079134adbfa07724dfeca590bc333bf0d6e69c03..4b710acf1e6cd037ab46044591a5f8cf050a2c4c 100644 GIT binary patch delta 484 zcmey%{EvBpO8rq!7srqc=eM&qdL3~PaW(H%Qo0efbekZz;1Q*WuKx-gifjKXX1)pj z$r!z4qu`o1y}d7W|1egwR&u<5sbakQ@tHkO^0v>OaCYzWduMK^Y(DA}f77Q_U!f-N ziKEOBQLBJyPnVy~H23{H`GcoRt=XZa7Zz!-HI~PI-@A8R_T3|j^>ZwmcPM_yTKrDx zt<9^K+mIA7;3>VF1Ddgb4ktx7`^P|Wj*;b1d_ctaT>o0%Y{o3~1lSiMv%{|Mk z>2{mDkV9SCaZb++pDU?b`1$L9h8L^nY}ta`R>7bzB-wF!?nxPpErlrRP9N>om_Hn)nkFY2ON)5dTy=gca5zs zu5RDBzoH^}>csF`$te~z`o0_QExlRkZo wRd{#WQ}_7BSy#7q6k7Uolow`m{jOu2FFGOM!4ald1_lNOPgg&ebxsLQ01Tk)(EtDd delta 483 zcmeyz{FixxO8pT}7srqc=eM&qdL3~PaV@t#n4nqbsKtHoT+oIdj<88a32&E6L~rz% zSmgMJ;oz|;nMeFLY}g()q5Z==KcmgoY0pyMmF?!dd8hi_**(5xJ3YQ^^$GdTbSPMv z|B=GF3yqs}>~sBg=iZ**a$f1xNsj4G-HRkx?v>vC{%zN~QsMT3`bRvE+77Jl-IcxN zvrW2~iSOdgj|K8>W(ue;zT#4QIpcfnd8@e4tLq(gPo3mFbp4G<$K=9`Zna$*r*Eot z^*R5rFOxcQvQZ(BU+}F)hx3n?xojUbt>v7zGz+wUXqe0P(buXj_U$Hh@$mBZIdUC_ zx8gdSEpBo=N;#6VNN;g%&6fJ}TAzRXIdt#++&esWrze#==DwS8!-lu?=J8kVTrHEA zD)_mnNSEGRd;P8Vw?Lk`aoMu+uPs_8Gb{MHt?1p=vnl(_)1&@=ReG=2udiKut&l^V z-QkYGg%d3+dVjrrcQx!CMg^2L~Q zn|e0xuc%6%Ix)Ofa*Dv*ZL_W_-noz|pq`v2{nhZ$zGu%h`#(Ro(zE7!*p}h%dFpz3 t;|_iGtun{6!mcYFdupS2=jd9?H@{gMQzry`QE+7d0Z&&ymvv4FO#lG7@#g>l