修复碰撞器旋转后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 tempMat = void 0;
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);
combinedMatrix = combinedMatrix.multiply(tempMat);
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));
let moonTexture = RES.getRes("moon_png");
let moonEntity = this.createEntity("moon");
moonEntity.position = new es.Vector2(412, 460);
moonEntity.addComponent(new SpriteRenderer(moonTexture));
moonEntity.addComponent(new ProjectileHitDetector());
moonEntity.addComponent(new CircleCollider());
this.content.loadRes("moon_png").then(moonTexture => {
let moonEntity = this.createEntity("moon");
moonEntity.position = new es.Vector2(412, 460);
moonEntity.addComponent(new SpriteRenderer(moonTexture));
moonEntity.addComponent(new ProjectileHitDetector());
moonEntity.addComponent(new CircleCollider());
});
}
/**
@@ -70,13 +71,15 @@ module samples {
Flags.setFlagExclusive(collider.collidesWithLayers, 0);
Flags.setFlagExclusive(collider.physicsLayer, 1);
let texture = RES.getRes("plume_png");
let sprites = Sprite.spritesFromAtlas(texture, 16, 16);
let animator = entity.addComponent(new SpriteAnimator());
animator.renderLayer = 1;
this.content.loadRes("plume_png").then(()=>{
let texture = RES.getRes("plume_png");
let sprites = Sprite.spritesFromAtlas(texture, 16, 16);
let animator = entity.addComponent(new SpriteAnimator());
animator.renderLayer = 1;
animator.addAnimation("default", new SpriteAnimation(sprites));
animator.play("default");
animator.addAnimation("default", new SpriteAnimation(sprites));
animator.play("default");
});
return entity;
}
+1 -1
View File
@@ -7146,7 +7146,7 @@ var es;
var hasUnitScale = true;
var tempMat = void 0;
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);
combinedMatrix = combinedMatrix.multiply(tempMat);
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 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);
combinedMatrix = combinedMatrix.multiply(tempMat);
hasUnitScale = false;