新增tiledspriterenderer

This commit is contained in:
yhh
2020-07-03 17:51:18 +08:00
parent e7796550c6
commit cf4e76b12d
8 changed files with 141 additions and 11 deletions

View File

@@ -1,7 +1,7 @@
class SpriteRenderer extends RenderableComponent {
private _origin: Vector2;
private _bitmap: egret.Bitmap;
private _sprite: Sprite;
protected bitmap: egret.Bitmap;
public get origin(){
return this._origin;
@@ -28,8 +28,8 @@ class SpriteRenderer extends RenderableComponent {
this.removeChildren();
this._sprite = sprite;
if (this._sprite) this._origin = this._sprite.origin;
this._bitmap = new egret.Bitmap(sprite.texture2D);
this.addChild(this._bitmap);
this.bitmap = new egret.Bitmap(sprite.texture2D);
this.addChild(this.bitmap);
return this;
}

View File

@@ -0,0 +1,36 @@
class TiledSpriteRenderer extends SpriteRenderer {
protected sourceRect: Rectangle;
public get scrollX(){
return this.sourceRect.x;
}
public set scrollX(value: number){
this.sourceRect.x = value;
}
public get scrollY(){
return this.sourceRect.y;
}
public set scrollY(value: number){
this.sourceRect.y = value;
}
constructor(sprite: Sprite){
super();
this.setSprite(sprite);
this.sourceRect = sprite.sourceRect;
}
public render(camera: Camera){
if (!this.sprite)
return;
super.render(camera);
let renderTexture = new egret.RenderTexture();
let targetTexture = new egret.Bitmap(this.sprite.texture2D);
let clipBounds = new egret.Rectangle(this.sourceRect.x, this.sourceRect.y, this.sourceRect.width, this.sourceRect.height);
renderTexture.drawToTexture(targetTexture, clipBounds);
this.bitmap.texture = renderTexture;
}
}