From 6bd32857be3cb336a76a777a49eeb9c2f98c67bf Mon Sep 17 00:00:00 2001 From: djdolphin Date: Sat, 2 Nov 2013 10:19:44 -0400 Subject: [PATCH] Partially implemented filter effects Implemented ghost effect --- js/Sprite.js | 5 +++++ js/primitives/LooksPrims.js | 20 +++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/js/Sprite.js b/js/Sprite.js index ada44d9..f24bf36 100644 --- a/js/Sprite.js +++ b/js/Sprite.js @@ -89,6 +89,9 @@ var Sprite = function(data) { this.soundsLoaded = 0; this.instrument = 1; + // Filter effects + this.ghostFilterEffect = 0; + // Incremented when images are loaded by the browser. this.costumesLoaded = 0; @@ -296,6 +299,8 @@ Sprite.prototype.updateTransform = function() { $(this.mesh).css('-ms-transform-origin', rotationCenterX + 'px ' + rotationCenterY + 'px'); $(this.mesh).css('-o-transform-origin', rotationCenterX + 'px ' + rotationCenterY + 'px'); $(this.mesh).css('transform-origin', rotationCenterX + 'px ' + rotationCenterY + 'px'); + + $(this.mesh).css('opacity', ((100 - this.ghostFilterEffect) / 100)); // Don't forget to update the talk bubble. if (this.talkBubble) { diff --git a/js/primitives/LooksPrims.js b/js/primitives/LooksPrims.js index 2556d65..cf6499d 100644 --- a/js/primitives/LooksPrims.js +++ b/js/primitives/LooksPrims.js @@ -152,11 +152,25 @@ LooksPrims.prototype.primGoBack = function(b) { if(s.visible) interp.redraw(); } -LooksPrims.prototype.primChangeEffect = function(b) {} +LooksPrims.prototype.primChangeEffect = function(b) { + var s = interp.targetSprite(); + var filter = interp.arg(b, 0); + var currentValue = eval("s." + filter + "FilterEffect"); + eval("s." + filter + "FilterEffect = (currentValue + (interp.arg(b, 1)));"); + s.updateTransform(); +} -LooksPrims.prototype.primSetEffect = function(b) {} +LooksPrims.prototype.primSetEffect = function(b) { + var s = interp.targetSprite(); + var filter = interp.arg(b, 0); + eval("s." + filter + "FilterEffect = (interp.arg(b, 1));"); + s.updateTransform(); +} -LooksPrims.prototype.primClearEffects = function(b) {} +LooksPrims.prototype.primClearEffects = function(b) { + var s = interp.targetSprite(); + s.ghostFilterEffect = 0; +} var showBubble = function(b, type) { var s = interp.targetSprite();