新增staticSpriteContainerRenderer
This commit is contained in:
17
demo/libs/framework/framework.d.ts
vendored
17
demo/libs/framework/framework.d.ts
vendored
@@ -867,6 +867,23 @@ declare module es {
|
||||
stop(): void;
|
||||
}
|
||||
}
|
||||
declare module es {
|
||||
import Bitmap = egret.Bitmap;
|
||||
class StaticSpriteContainerRenderer extends RenderableComponent {
|
||||
displayObject: egret.DisplayObjectContainer;
|
||||
private displayObjectCache;
|
||||
constructor(sprite?: Sprite[] | egret.Texture[]);
|
||||
readonly bounds: Rectangle;
|
||||
originNormalized: Vector2;
|
||||
protected _origin: Vector2;
|
||||
origin: Vector2;
|
||||
pushSprite(sprite: Sprite): StaticSpriteContainerRenderer;
|
||||
getSprite(sprite: Sprite): Bitmap;
|
||||
setOrigin(origin: Vector2): StaticSpriteContainerRenderer;
|
||||
setOriginNormalized(value: Vector2): StaticSpriteContainerRenderer;
|
||||
render(camera: Camera): void;
|
||||
}
|
||||
}
|
||||
declare module es {
|
||||
class TiledMapRenderer extends RenderableComponent {
|
||||
tiledMap: TmxMap;
|
||||
|
||||
@@ -3994,6 +3994,97 @@ var es;
|
||||
es.SpriteAnimator = SpriteAnimator;
|
||||
})(es || (es = {}));
|
||||
var es;
|
||||
(function (es) {
|
||||
var Bitmap = egret.Bitmap;
|
||||
var StaticSpriteContainerRenderer = (function (_super) {
|
||||
__extends(StaticSpriteContainerRenderer, _super);
|
||||
function StaticSpriteContainerRenderer(sprite) {
|
||||
if (sprite === void 0) { sprite = null; }
|
||||
var _this = _super.call(this) || this;
|
||||
_this.displayObject = new egret.DisplayObjectContainer();
|
||||
_this.displayObjectCache = new Map();
|
||||
for (var _i = 0, sprite_1 = sprite; _i < sprite_1.length; _i++) {
|
||||
var s = sprite_1[_i];
|
||||
if (s instanceof es.Sprite)
|
||||
_this.pushSprite(s);
|
||||
else if (s instanceof egret.Texture)
|
||||
_this.pushSprite(new es.Sprite(s));
|
||||
}
|
||||
_this.displayObject.cacheAsBitmap = true;
|
||||
return _this;
|
||||
}
|
||||
Object.defineProperty(StaticSpriteContainerRenderer.prototype, "bounds", {
|
||||
get: function () {
|
||||
if (this._areBoundsDirty) {
|
||||
if (this.displayObject) {
|
||||
this._bounds.calculateBounds(this.entity.transform.position, this._localOffset, this._origin, this.entity.transform.scale, this.entity.transform.rotation, this.displayObject.width, this.displayObject.height);
|
||||
this._areBoundsDirty = false;
|
||||
}
|
||||
}
|
||||
return this._bounds;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(StaticSpriteContainerRenderer.prototype, "originNormalized", {
|
||||
get: function () {
|
||||
return new es.Vector2(this._origin.x / this.width * this.entity.transform.scale.x, this._origin.y / this.height * this.entity.transform.scale.y);
|
||||
},
|
||||
set: function (value) {
|
||||
this.setOrigin(new es.Vector2(value.x * this.width / this.entity.transform.scale.x, value.y * this.height / this.entity.transform.scale.y));
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(StaticSpriteContainerRenderer.prototype, "origin", {
|
||||
get: function () {
|
||||
return this._origin;
|
||||
},
|
||||
set: function (value) {
|
||||
this.setOrigin(value);
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
StaticSpriteContainerRenderer.prototype.pushSprite = function (sprite) {
|
||||
if (sprite) {
|
||||
this._origin = sprite.origin;
|
||||
this.displayObject.anchorOffsetX = this._origin.x;
|
||||
this.displayObject.anchorOffsetY = this._origin.y;
|
||||
}
|
||||
var bitmap = new Bitmap(sprite.texture2D);
|
||||
this.displayObject.addChild(new Bitmap(sprite.texture2D));
|
||||
this.displayObjectCache.set(sprite, bitmap);
|
||||
return this;
|
||||
};
|
||||
StaticSpriteContainerRenderer.prototype.getSprite = function (sprite) {
|
||||
return this.displayObjectCache.get(sprite);
|
||||
};
|
||||
StaticSpriteContainerRenderer.prototype.setOrigin = function (origin) {
|
||||
if (this._origin != origin) {
|
||||
this._origin = origin;
|
||||
this.displayObject.anchorOffsetX = this._origin.x;
|
||||
this.displayObject.anchorOffsetY = this._origin.y;
|
||||
this._areBoundsDirty = true;
|
||||
}
|
||||
return this;
|
||||
};
|
||||
StaticSpriteContainerRenderer.prototype.setOriginNormalized = function (value) {
|
||||
this.setOrigin(new es.Vector2(value.x * this.width / this.entity.transform.scale.x, value.y * this.height / this.entity.transform.scale.y));
|
||||
return this;
|
||||
};
|
||||
StaticSpriteContainerRenderer.prototype.render = function (camera) {
|
||||
this.sync(camera);
|
||||
if (this.displayObject.x != this.bounds.x - camera.bounds.x)
|
||||
this.displayObject.x = this.bounds.x - camera.bounds.x;
|
||||
if (this.displayObject.y != this.bounds.y - camera.bounds.y)
|
||||
this.displayObject.y = this.bounds.y - camera.bounds.y;
|
||||
};
|
||||
return StaticSpriteContainerRenderer;
|
||||
}(es.RenderableComponent));
|
||||
es.StaticSpriteContainerRenderer = StaticSpriteContainerRenderer;
|
||||
})(es || (es = {}));
|
||||
var es;
|
||||
(function (es) {
|
||||
var TiledMapRenderer = (function (_super) {
|
||||
__extends(TiledMapRenderer, _super);
|
||||
|
||||
2
demo/libs/framework/framework.min.js
vendored
2
demo/libs/framework/framework.min.js
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user