修复origin导致显示位置错误问题

This commit is contained in:
YHH
2020-08-08 10:12:08 +08:00
parent 7cd38ea54e
commit a105bb11ca
6 changed files with 17 additions and 20 deletions

View File

@@ -2764,8 +2764,8 @@ var es;
};
SpriteRenderer.prototype.render = function (camera) {
this.sync(camera);
this.displayObject.x = this.entity.position.x - this.origin.x + this.localOffset.x - camera.position.x + camera.origin.x;
this.displayObject.y = this.entity.position.y - this.origin.y + this.localOffset.y - camera.position.y + camera.origin.y;
this.displayObject.x = this.entity.position.x + this.localOffset.x - camera.position.x + camera.origin.x;
this.displayObject.y = this.entity.position.y + this.localOffset.y - camera.position.y + camera.origin.y;
};
return SpriteRenderer;
}(es.RenderableComponent));

File diff suppressed because one or more lines are too long

View File

@@ -14,22 +14,19 @@ module scene {
this.createEntityAsync("bg").then(bg => {
bg.addComponent(new component.PlayerController());
bg.addComponent(new es.Mover());
bg.addComponent(new es.ScrollingSpriteRenderer(sprite)).setGapXY(new es.Vector2(10, 0));
bg.addComponent(new es.SpriteRenderer(sprite)).setOrigin(sprite.sourceRect.getHalfSize());
bg.addComponent(new es.BoxCollider());
bg.position = new es.Vector2(Math.random() * 200, Math.random() * 200);
this.camera.follow(bg, es.CameraStyle.lockOn);
});
// bg.addComponent(new es.SpriteRenderer()).setSprite(sprite).setColor(0xff0000);
// // bg.addComponent(new es.SpriteRenderer()).setSprite(sprite).setColor(0xff0000);
for (let i = 0; i < 20; i++) {
let sprite = new es.Sprite(RES.getRes("checkbox_select_disabled_png"));
let player2 = this.createEntity("player2");
player2.addComponent(new es.SpriteRenderer()).setSprite(sprite);
player2.position = new es.Vector2(Math.random() * 1000, Math.random() * 1000);
player2.addComponent(new es.BoxCollider());
}
// for (let i = 0; i < 20; i++) {
// let sprite = new es.Sprite(RES.getRes("checkbox_select_disabled_png"));
// let player2 = this.createEntity("player2");
// player2.addComponent(new es.SpriteRenderer()).setSprite(sprite);
// player2.position = new es.Vector2(Math.random() * 1000, Math.random() * 1000);
// player2.addComponent(new es.BoxCollider());
// }
let pool = new es.ComponentPool<component.SimplePooled>(component.SimplePooled);