更改地图初始化函数

This commit is contained in:
星外之神 2022-06-08 10:22:12 +08:00
parent dd623e1c71
commit 5bc2a15db8
2 changed files with 8 additions and 13 deletions

View File

@ -11,27 +11,27 @@ class Map():
self.width = c.GRID_POOL_X_LEN
self.height = c.GRID_POOL_Y_LEN
self.gridHeightSize = c.GRID_POOL_Y_SIZE
self.map = [[(c.MAP_STATE_EMPTY(), c.MAP_STATE_WATER())[y in {2, 3}] for x in range(self.width)] for y in range(self.height)]
self.map = [[(c.INIT_MAP_GRID(c.MAP_GRASS), c.INIT_MAP_GRID(c.MAP_WATER))[y in {2, 3}] for x in range(self.width)] for y in range(self.height)]
elif self.background_type in c.ON_ROOF_BACKGROUNDS:
self.width = c.GRID_ROOF_X_LEN
self.height = c.GRID_ROOF_Y_LEN
self.gridHeightSize = c.GRID_ROOF_Y_SIZE
self.map = [[c.MAP_STATE_TILE() for x in range(self.width)] for y in range(self.height)]
self.map = [[c.INIT_MAP_GRID(c.MAP_TILE) for x in range(self.width)] for y in range(self.height)]
elif self.background_type == c.BACKGROUND_SINGLE:
self.width = c.GRID_X_LEN
self.height = c.GRID_Y_LEN
self.gridHeightSize = c.GRID_Y_SIZE
self.map = [[(c.MAP_STATE_UNAVAILABLE(), c.MAP_STATE_EMPTY())[y == 2] for x in range(self.width)] for y in range(self.height)]
self.map = [[(c.INIT_MAP_GRID(c.MAP_UNAVAILABLE), c.INIT_MAP_GRID(c.MAP_GRASS))[y == 2] for x in range(self.width)] for y in range(self.height)]
elif self.background_type == c.BACKGROUND_TRIPLE:
self.width = c.GRID_X_LEN
self.height = c.GRID_Y_LEN
self.gridHeightSize = c.GRID_Y_SIZE
self.map = [[(c.MAP_STATE_UNAVAILABLE(), c.MAP_STATE_EMPTY())[y in {1, 2, 3}] for x in range(self.width)] for y in range(self.height)]
self.map = [[(c.INIT_MAP_GRID(c.MAP_UNAVAILABLE), c.INIT_MAP_GRID(c.MAP_GRASS))[y in {1, 2, 3}] for x in range(self.width)] for y in range(self.height)]
else:
self.width = c.GRID_X_LEN
self.height = c.GRID_Y_LEN
self.gridHeightSize = c.GRID_Y_SIZE
self.map = [[c.MAP_STATE_EMPTY() for x in range(self.width)] for y in range(self.height)]
self.map = [[c.INIT_MAP_GRID(c.MAP_GRASS) for x in range(self.width)] for y in range(self.height)]
def isValid(self, map_x, map_y):
if (map_x < 0 or map_x >= self.width or

View File

@ -160,14 +160,9 @@ MAP_UNAVAILABLE = 'unavailable' # 指完全不能种植物的地方,包括无
# 地图单元格状态
# 注意是可变对象,不能直接引用
# 不喜欢用深拷贝,直接改用函数表示,需要时直接调用该函数生成即可
def MAP_STATE_EMPTY(): # 由于同一格显然不可能种两个相同的植物,所以用集合
return {MAP_PLANT:set(), MAP_SLEEP:False, MAP_PLOT_TYPE:MAP_GRASS}
def MAP_STATE_WATER():
return {MAP_PLANT:set(), MAP_SLEEP:False, MAP_PLOT_TYPE:MAP_WATER}
def MAP_STATE_TILE():
return {MAP_PLANT:set(), MAP_SLEEP:False, MAP_PLOT_TYPE:MAP_TILE}
def MAP_STATE_UNAVAILABLE():
return {MAP_PLANT:set(), MAP_SLEEP:False, MAP_PLOT_TYPE:MAP_UNAVAILABLE}
# 由于同一格显然不可能种两个相同的植物,所以用集合
def INIT_MAP_GRID(PLOT_TYPE):
return {MAP_PLANT:set(), MAP_SLEEP:False, MAP_PLOT_TYPE:POLT_TYPE}
# 地图相关像素数据
BACKGROUND_OFFSET_X = 220