新增tiledspriterenderer
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
36
source/src/ECS/Components/TiledSpriteRenderer.ts
Normal file
36
source/src/ECS/Components/TiledSpriteRenderer.ts
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user