From be7c2fc4c199bbadf691262fc509eaae45d390a0 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 9 Aug 2022 13:44:56 +0800 Subject: [PATCH] 1 --- server/gameserver/obstacle.cc | 18 ------------------ server/gameserver/roomobstacle.cc | 24 ++++++++++++++++++++++++ third_party/a8engine | 2 +- 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/server/gameserver/obstacle.cc b/server/gameserver/obstacle.cc index c79ba487..48cf4a7c 100644 --- a/server/gameserver/obstacle.cc +++ b/server/gameserver/obstacle.cc @@ -101,24 +101,6 @@ void Obstacle::RecalcSelfCollider() break; } } - switch (meta->i->type()) { - case kObstacleShield: - case kObstacleStrengthenWall: - { - for (auto& tuple : meta->shapes) { - auto collider = new CircleCollider(); - collider->owner = this; - collider->pos = a8::Vec2(std::get<0>(tuple), std::get<1>(tuple)); - collider->rad = std::get<2>(tuple); - AddEntityCollider(collider); - } - } - break; - default: - { - } - break; - } if (!self_collider_) { self_collider_ = new CircleCollider(); self_collider_->owner = this; diff --git a/server/gameserver/roomobstacle.cc b/server/gameserver/roomobstacle.cc index 81fb8a7c..c5ef5649 100644 --- a/server/gameserver/roomobstacle.cc +++ b/server/gameserver/roomobstacle.cc @@ -101,6 +101,24 @@ void RoomObstacle::RecalcSelfCollider() break; } } + switch (meta->i->type()) { + case kObstacleShield: + case kObstacleStrengthenWall: + { + for (auto& tuple : meta->shapes) { + auto collider = new CircleCollider(); + collider->owner = this; + collider->pos = a8::Vec2(std::get<0>(tuple), std::get<1>(tuple)); + collider->rad = std::get<2>(tuple); + AddEntityCollider(collider); + } + } + break; + default: + { + } + break; + } if (!self_collider_) { #ifdef DEBUG #if 0 @@ -307,11 +325,17 @@ void RoomObstacle::Active() break; case kObstacleShield: { + if (master.Get() && !master.Get()->GetMoveDir().IsZero()) { + SetRotate(master.Get()->GetMoveDir().CalcAngleEx(a8::Vec2::UP)); + } CalcTempPassObjects(); } break; case kObstacleStrengthenWall: { + if (master.Get() && !master.Get()->GetMoveDir().IsZero()) { + SetRotate(master.Get()->GetMoveDir().CalcAngleEx(a8::Vec2::UP)); + } ActiveStrengthenWall(); } break; diff --git a/third_party/a8engine b/third_party/a8engine index ab36720b..ba8d372c 160000 --- a/third_party/a8engine +++ b/third_party/a8engine @@ -1 +1 @@ -Subproject commit ab36720b8e2b61fd70cc288d3708f88a94d1ca6b +Subproject commit ba8d372c733e91043fd9f84ab0589951899a49fa