修复碰撞器旋转后bounds计算错误

This commit is contained in:
YHH
2020-08-28 09:13:53 +08:00
parent d07912d610
commit a3c53116e1
6 changed files with 20 additions and 17 deletions
+1 -1
View File
@@ -7146,7 +7146,7 @@ var es;
var hasUnitScale = true; var hasUnitScale = true;
var tempMat = void 0; var tempMat = void 0;
var combinedMatrix = es.Matrix2D.create().translate(-this._polygonCenter.x, -this._polygonCenter.y); var combinedMatrix = es.Matrix2D.create().translate(-this._polygonCenter.x, -this._polygonCenter.y);
if (collider.entity.transform.scale != es.Vector2.one) { if (!collider.entity.transform.scale.equals(es.Vector2.one)) {
tempMat = es.Matrix2D.create().scale(collider.entity.transform.scale.x, collider.entity.transform.scale.y); tempMat = es.Matrix2D.create().scale(collider.entity.transform.scale.x, collider.entity.transform.scale.y);
combinedMatrix = combinedMatrix.multiply(tempMat); combinedMatrix = combinedMatrix.multiply(tempMat);
hasUnitScale = false; hasUnitScale = false;
File diff suppressed because one or more lines are too long
@@ -46,12 +46,13 @@ module samples {
this.camera.entity.addComponent(new FollowCamera(playerEntity)); this.camera.entity.addComponent(new FollowCamera(playerEntity));
let moonTexture = RES.getRes("moon_png"); this.content.loadRes("moon_png").then(moonTexture => {
let moonEntity = this.createEntity("moon"); let moonEntity = this.createEntity("moon");
moonEntity.position = new es.Vector2(412, 460); moonEntity.position = new es.Vector2(412, 460);
moonEntity.addComponent(new SpriteRenderer(moonTexture)); moonEntity.addComponent(new SpriteRenderer(moonTexture));
moonEntity.addComponent(new ProjectileHitDetector()); moonEntity.addComponent(new ProjectileHitDetector());
moonEntity.addComponent(new CircleCollider()); moonEntity.addComponent(new CircleCollider());
});
} }
/** /**
@@ -70,6 +71,7 @@ module samples {
Flags.setFlagExclusive(collider.collidesWithLayers, 0); Flags.setFlagExclusive(collider.collidesWithLayers, 0);
Flags.setFlagExclusive(collider.physicsLayer, 1); Flags.setFlagExclusive(collider.physicsLayer, 1);
this.content.loadRes("plume_png").then(()=>{
let texture = RES.getRes("plume_png"); let texture = RES.getRes("plume_png");
let sprites = Sprite.spritesFromAtlas(texture, 16, 16); let sprites = Sprite.spritesFromAtlas(texture, 16, 16);
let animator = entity.addComponent(new SpriteAnimator()); let animator = entity.addComponent(new SpriteAnimator());
@@ -77,6 +79,7 @@ module samples {
animator.addAnimation("default", new SpriteAnimation(sprites)); animator.addAnimation("default", new SpriteAnimation(sprites));
animator.play("default"); animator.play("default");
});
return entity; return entity;
} }
+1 -1
View File
@@ -7146,7 +7146,7 @@ var es;
var hasUnitScale = true; var hasUnitScale = true;
var tempMat = void 0; var tempMat = void 0;
var combinedMatrix = es.Matrix2D.create().translate(-this._polygonCenter.x, -this._polygonCenter.y); var combinedMatrix = es.Matrix2D.create().translate(-this._polygonCenter.x, -this._polygonCenter.y);
if (collider.entity.transform.scale != es.Vector2.one) { if (!collider.entity.transform.scale.equals(es.Vector2.one)) {
tempMat = es.Matrix2D.create().scale(collider.entity.transform.scale.x, collider.entity.transform.scale.y); tempMat = es.Matrix2D.create().scale(collider.entity.transform.scale.x, collider.entity.transform.scale.y);
combinedMatrix = combinedMatrix.multiply(tempMat); combinedMatrix = combinedMatrix.multiply(tempMat);
hasUnitScale = false; hasUnitScale = false;
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -219,7 +219,7 @@ module es {
let tempMat: Matrix2D; let tempMat: Matrix2D;
let combinedMatrix = Matrix2D.create().translate(-this._polygonCenter.x, -this._polygonCenter.y); let combinedMatrix = Matrix2D.create().translate(-this._polygonCenter.x, -this._polygonCenter.y);
if (collider.entity.transform.scale != Vector2.one) { if (!collider.entity.transform.scale.equals(Vector2.one)) {
tempMat = Matrix2D.create().scale(collider.entity.transform.scale.x, collider.entity.transform.scale.y); tempMat = Matrix2D.create().scale(collider.entity.transform.scale.x, collider.entity.transform.scale.y);
combinedMatrix = combinedMatrix.multiply(tempMat); combinedMatrix = combinedMatrix.multiply(tempMat);
hasUnitScale = false; hasUnitScale = false;