Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/src/js/jgame.js

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 58 by tsugehara, Fri Mar 8 07:02:08 2013 UTC revision 59 by tsugehara, Fri Mar 8 14:41:33 2013 UTC
# Line 2147  var Renderer = (function () { Line 2147  var Renderer = (function () {
2147                  this.filterDraw(entity, c);                  this.filterDraw(entity, c);
2148              } else {              } else {
2149                  entity.draw(c);                  entity.draw(c);
2150              }                  if(entity.entities) {
2151              if(entity.entities) {                      if(entity.scroll) {
2152                  if(entity.scroll) {                          c.translate(entity.scroll.x, entity.scroll.y);
2153                      c.translate(entity.scroll.x, entity.scroll.y);                      }
2154                  }                      for(var i = 0; i < entity.entities.length; i++) {
2155                  for(var i = 0; i < entity.entities.length; i++) {                          this.renderEntity(entity.entities[i], c);
2156                      this.renderEntity(entity.entities[i], c);                      }
2157                  }                  }
2158              }              }
2159              c.restore();              c.restore();
# Line 2161  var Renderer = (function () { Line 2161  var Renderer = (function () {
2161      };      };
2162      Renderer.prototype.renderPure = function (entity, c) {      Renderer.prototype.renderPure = function (entity, c) {
2163          entity.draw(c);          entity.draw(c);
2164            if(entity.entities) {
2165                for(var i = 0; i < entity.entities.length; i++) {
2166                    this.renderEntity(entity.entities[i], c);
2167                }
2168            }
2169      };      };
2170      Renderer.prototype.filterDraw = function (entity, c) {      Renderer.prototype.filterDraw = function (entity, c) {
2171          var buffer = new BufferedRenderer(entity);          var buffer = new BufferedRenderer(entity);
# Line 3016  var ImageFilter; Line 3021  var ImageFilter;
3021          return Filter;          return Filter;
3022      })();      })();
3023      ImageFilter.Filter = Filter;          ImageFilter.Filter = Filter;    
3024        var UniversalTransitionFilter = (function (_super) {
3025            __extends(UniversalTransitionFilter, _super);
3026            function UniversalTransitionFilter(image, amount, repeat) {
3027                    _super.call(this);
3028                this.opt.amount = amount;
3029                this.opt.image = image;
3030                this.opt.repeat = repeat;
3031            }
3032            UniversalTransitionFilter.prototype.getImageData = function (image, canvas) {
3033                var context;
3034                if(!canvas) {
3035                    canvas = window.createCanvas(image.width, image.height);
3036                    context = canvas.getContext("2d");
3037                    context.drawImage(image, 0, 0);
3038                } else {
3039                    context = canvas.getContext("2d");
3040                }
3041                return context.getImageData(0, 0, image.width, image.height);
3042            };
3043            UniversalTransitionFilter.prototype.createRuleImage = function () {
3044                var image = this.opt.image;
3045                if(image instanceof ImageData) {
3046                    this.ruleImage = image;
3047                } else if(image instanceof HTMLCanvasElement) {
3048                    this.ruleImage = this.getImageData(image, image);
3049                } else if(image instanceof HTMLImageElement || image instanceof HTMLVideoElement) {
3050                    this.ruleImage = this.getImageData(image);
3051                } else {
3052                    var sprite = image.createSprite();
3053                    this.ruleImage = this.getImageData(sprite.image);
3054                }
3055            };
3056            UniversalTransitionFilter.prototype.filter = function (pixels) {
3057                if(!this.ruleImage) {
3058                    this.createRuleImage();
3059                }
3060                var amount = this.getOption("amount", 255);
3061                var repeat = this.getOption("repeat", false);
3062                var w = pixels.width;
3063                var h = pixels.height;
3064                var w2 = this.ruleImage.width;
3065                var h2 = this.ruleImage.height;
3066                var data = pixels.data;
3067                var data2 = this.ruleImage.data;
3068                if(w == w2 && h == h2) {
3069                    for(var i = 0, length = data.length; i < length >> 2; i++) {
3070                        var index = i << 2;
3071                        data[index + 3] = Math.round(data[index + 3] / 255 * Math.max(0, data2[index] - amount));
3072                    }
3073                } else if(repeat) {
3074                    for(var x = 0; x < w; x++) {
3075                        for(var y = 0; y < h; y++) {
3076                            var x2 = x % w2;
3077                            var y2 = y % h2;
3078                            var index = (x + y * w) * 4;
3079                            var index2 = (x2 + y2 * w2) * 4;
3080                            data[index + 3] = Math.round(data[index + 3] / 255 * Math.max(0, data2[index2] - amount));
3081                        }
3082                    }
3083                } else {
3084                    var xPer = w2 / w;
3085                    var yPer = h2 / h;
3086                    for(var x = 0; x < w; x++) {
3087                        for(var y = 0; y < h; y++) {
3088                            var x2 = Math.round(xPer * x);
3089                            var y2 = Math.round(yPer * y);
3090                            var index = (x + y * w) * 4;
3091                            var index2 = (x2 + y2 * w2) * 4;
3092                            data[index + 3] = Math.round(data[index + 3] / 255 * Math.max(0, data2[index2] - amount));
3093                        }
3094                    }
3095                }
3096            };
3097            return UniversalTransitionFilter;
3098        })(Filter);
3099        ImageFilter.UniversalTransitionFilter = UniversalTransitionFilter;    
3100      var GreyscaleFilter = (function (_super) {      var GreyscaleFilter = (function (_super) {
3101          __extends(GreyscaleFilter, _super);          __extends(GreyscaleFilter, _super);
3102          function GreyscaleFilter(opacity) {          function GreyscaleFilter(opacity) {
# Line 3024  var ImageFilter; Line 3105  var ImageFilter;
3105          }          }
3106          GreyscaleFilter.prototype.filter = function (pixels) {          GreyscaleFilter.prototype.filter = function (pixels) {
3107              var opacity = this.getOption("opacity", 1);              var opacity = this.getOption("opacity", 1);
3108              var data = data = pixels.data;              var data = pixels.data;
3109              for(var i = 0, length = data.length; i < length >> 2; i++) {              for(var i = 0, length = data.length; i < length >> 2; i++) {
3110                  var index = i << 2;                  var index = i << 2;
3111                  var r = data[index], g = data[index + 1], b = data[index + 2];                  var r = data[index], g = data[index + 1], b = data[index + 2];
# Line 3045  var ImageFilter; Line 3126  var ImageFilter;
3126          }          }
3127          SepiaFilter.prototype.filter = function (pixels) {          SepiaFilter.prototype.filter = function (pixels) {
3128              var opacity = this.getOption("opacity", 1);              var opacity = this.getOption("opacity", 1);
3129              var data = data = pixels.data;              var data = pixels.data;
3130              for(var i = 0, length = data.length; i < length >> 2; i++) {              for(var i = 0, length = data.length; i < length >> 2; i++) {
3131                  var index = i << 2;                  var index = i << 2;
3132                  var r = data[index], g = data[index + 1], b = data[index + 2];                  var r = data[index], g = data[index + 1], b = data[index + 2];
# Line 3067  var ImageFilter; Line 3148  var ImageFilter;
3148          TintFilter.prototype.filter = function (pixels) {          TintFilter.prototype.filter = function (pixels) {
3149              var opacity = this.getOption("opacity", 1);              var opacity = this.getOption("opacity", 1);
3150              var color = this.getOption("color", "#f00");              var color = this.getOption("color", "#f00");
3151              var data = data = pixels.data;              var data = pixels.data;
3152              var src = parseInt(this.createColor(color), 16);              var src = parseInt(this.createColor(color), 16);
3153              var r2 = (src & 16711680) >> 16, g2 = (src & 65280) >> 8, b2 = (src & 255);              var r2 = (src & 16711680) >> 16, g2 = (src & 65280) >> 8, b2 = (src & 255);
3154              for(var i = 0, length = data.length; i < length >> 2; i++) {              for(var i = 0, length = data.length; i < length >> 2; i++) {
# Line 3554  var Tween = (function (_super) { Line 3635  var Tween = (function (_super) {
3635                          if(this.entity.filter.length == 0) {                          if(this.entity.filter.length == 0) {
3636                              delete this.entity.filter;                              delete this.entity.filter;
3637                          }                          }
3638                            this.entity.updated();
3639                      });                      });
3640                  }                  }
3641                  this.target[prop] = {                  this.target[prop] = {
# Line 3566  var Tween = (function (_super) { Line 3648  var Tween = (function (_super) {
3648                      if(j == "targetClass" || j == "autoDelete") {                      if(j == "targetClass" || j == "autoDelete") {
3649                          continue;                          continue;
3650                      }                      }
3651                      if(this.props[prop][j].start !== undefined) {                      if(this.props[prop][j].start !== undefined && this.props[prop][j].start != E.prototype.start) {
3652                          var s = this.props[prop][j].start;                          var s = this.props[prop][j].start;
3653                          filter.opt[j] = s;                          filter.opt[j] = s;
3654                          this.origin[prop][j] = s;                          this.origin[prop][j] = s;
# Line 4824  var Effect = (function () { Line 4906  var Effect = (function () {
4906                      break;                      break;
4907              }              }
4908          } else {          } else {
4909              this.callEffect(effect);              type.callEffect(effect);
4910          }          }
4911      };      };
4912      Effect.prototype.callEffect = function (scene) {      Effect.prototype.callEffect = function (scene) {
# Line 5086  var EffectScene = (function (_super) { Line 5168  var EffectScene = (function (_super) {
5168              _this.effected.fire();              _this.effected.fire();
5169          });          });
5170      };      };
5171        EffectScene.prototype.universal = function (image, repeat) {
5172            var _this = this;
5173            var t = Effect.time;
5174            this.swapScene();
5175            this.sp1.tl().filter(ImageFilter.UniversalTransitionFilter, {
5176                image: image,
5177                repeat: repeat,
5178                amount: {
5179                    start: -255,
5180                    end: 255
5181                }
5182            }, t).removeFromScene();
5183            this.sp2.tl().show().delay(t).then(function () {
5184                _this.effected.fire();
5185            });
5186        };
5187        EffectScene.prototype.universalTwin = function (image, repeat) {
5188            var _this = this;
5189            var t = Effect.time;
5190            this.sp1.tl().filter(ImageFilter.UniversalTransitionFilter, {
5191                image: image,
5192                repeat: repeat,
5193                amount: {
5194                    start: -255,
5195                    end: 255
5196                }
5197            }, t).removeFromScene();
5198            this.sp2.tl().show().filter(ImageFilter.UniversalTransitionFilter, {
5199                image: image,
5200                repeat: repeat,
5201                amount: {
5202                    start: 255,
5203                    end: -255
5204                }
5205            }, t).then(function () {
5206                _this.effected.fire();
5207            });
5208        };
5209        EffectScene.prototype.universalDelay = function (image, repeat, color) {
5210            var _this = this;
5211            var t = Effect.time / 2;
5212            var shape = new Shape(this.sp1.width, this.sp1.height, ShapeStyle.fill, color);
5213            shape.setDrawOption("globalAlpha", 0);
5214            this.root.insert(shape, 0);
5215            this.sp1.tl().filter(ImageFilter.UniversalTransitionFilter, {
5216                image: image,
5217                repeat: repeat,
5218                amount: {
5219                    start: -255,
5220                    end: 255
5221                }
5222            }, t).removeFromScene();
5223            shape.tl().fadeIn(t).delay(t).removeFromScene();
5224            this.sp2.tl().delay(t).show().filter(ImageFilter.UniversalTransitionFilter, {
5225                image: image,
5226                repeat: repeat,
5227                amount: {
5228                    start: 255,
5229                    end: -255
5230                }
5231            }, t).then(function () {
5232                _this.effected.fire();
5233            });
5234        };
5235      EffectScene.prototype.getFilter = function (target) {      EffectScene.prototype.getFilter = function (target) {
5236          if(!target.filter) {          if(!target.filter) {
5237              target.filter = new ImageFilter.FilterChain();              target.filter = new ImageFilter.FilterChain();

Legend:
Removed from v.58  
changed lines
  Added in v.59

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26