From f9b2a9358b1905c4a4b755ef7e2745ac2307c730 Mon Sep 17 00:00:00 2001 From: LmeSzinc Date: Sat, 25 Apr 2020 02:09:27 +0800 Subject: [PATCH] =?UTF-8?q?Fix:=20=E4=BF=AE=E5=A4=8D=E7=B2=BE=E8=8B=B1?= =?UTF-8?q?=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复红框会越到下面一个格子的问题 - 修复BD图红框闪烁检测的问题 --- campaign/event_20200423_cn/b1.py | 2 ++ campaign/event_20200423_cn/d1.py | 2 ++ module/map/fleet.py | 4 ++-- module/map/grid_predictor.py | 9 +++++++-- module/map/grids.py | 6 ++++++ 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/campaign/event_20200423_cn/b1.py b/campaign/event_20200423_cn/b1.py index a302592b9..619b5c100 100644 --- a/campaign/event_20200423_cn/b1.py +++ b/campaign/event_20200423_cn/b1.py @@ -19,11 +19,13 @@ MAP.map_data = ''' class Config: SUBMARINE = 0 FLEET_BOSS = 1 + POOR_MAP_DATA = True MAP_HAS_AMBUSH = False MAP_HAS_FLEET_STEP = True MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_SIREN = True + MAP_HAS_DYNAMIC_RED_BORDER = True MAP_SIREN_COUNT = 2 TRUST_EDGE_LINES = True diff --git a/campaign/event_20200423_cn/d1.py b/campaign/event_20200423_cn/d1.py index dae13cba6..c078f94ea 100644 --- a/campaign/event_20200423_cn/d1.py +++ b/campaign/event_20200423_cn/d1.py @@ -19,11 +19,13 @@ MAP.map_data = ''' class Config: SUBMARINE = 0 FLEET_BOSS = 2 + POOR_MAP_DATA = True MAP_HAS_AMBUSH = False MAP_HAS_FLEET_STEP = True MAP_HAS_MOVABLE_ENEMY = True MAP_HAS_SIREN = True + MAP_HAS_DYNAMIC_RED_BORDER = True MAP_SIREN_COUNT = 2 TRUST_EDGE_LINES = True diff --git a/module/map/fleet.py b/module/map/fleet.py index f11af6ec1..4230d58c7 100644 --- a/module/map/fleet.py +++ b/module/map/fleet.py @@ -429,8 +429,8 @@ class Fleet(Camera, MapOperation, AmbushHandler): for grid in grids: if grid.is_boss: appear = True - for grid in self.map: - grid.wipe_out() + for g in self.map: + g.wipe_out() break if appear: diff --git a/module/map/grid_predictor.py b/module/map/grid_predictor.py index 762c7636e..9dfd3f46e 100644 --- a/module/map/grid_predictor.py +++ b/module/map/grid_predictor.py @@ -9,6 +9,7 @@ from module.template.assets import * class GridPredictor: ENEMY_SCALE_IMAGE_SIZE = (50, 50) ENEMY_PERSPECTIVE_IMAGE_SIZE = (50, 50) + RED_BORDER_IGNORE_TOP = 10 def __init__(self, location, image, corner): """ @@ -111,7 +112,9 @@ class GridPredictor: def predict_static_red_border(self): # image = self.image.transform(self.ENEMY_PERSPECTIVE_IMAGE_SIZE, Image.PERSPECTIVE, self._perspective) - image = color_similarity_2d(self.image_transform, color=(255, 36, 82)) + image = color_similarity_2d( + self.image_transform.crop((0, self.RED_BORDER_IGNORE_TOP, *self.ENEMY_PERSPECTIVE_IMAGE_SIZE)), + color=(255, 36, 82)) # Image.fromarray(np.array(image).astype('uint8'), mode='RGB').save(f'{self}.png') @@ -119,7 +122,9 @@ class GridPredictor: return count > 40 def predict_dynamic_red_border(self, pad=4): - image = np.array(self.image_transform).astype(float) + image = np.array( + self.image_transform.crop((0, self.RED_BORDER_IGNORE_TOP, *self.ENEMY_PERSPECTIVE_IMAGE_SIZE)) + ).astype(float) r, b = image[:, :, 0], image[:, :, 2] image = r - b image[image < 0] = 0 diff --git a/module/map/grids.py b/module/map/grids.py index d64f5485e..397d3bbe6 100644 --- a/module/map/grids.py +++ b/module/map/grids.py @@ -97,6 +97,12 @@ class Grids(Perspective): for grid in self: grid.is_siren = False + # for grid in self: + # if grid.is_enemy and grid.enemy_scale == 0: + # import time + # self.image.save(f'{int(time.time()*1000)}.png') + # break + def update(self, image): self.image = image for grid in self: