Fixed leaky abstraction Map - draw - Object.
This commit is contained in:
@@ -25,21 +25,8 @@ class Object:
|
||||
sprite_state: int = 0
|
||||
grid_pos: tuple = None
|
||||
# current_map
|
||||
# pos
|
||||
# weight
|
||||
# effects = {}
|
||||
|
||||
def draw(self, draw_data):
|
||||
if draw_data["spr_up"] == 0:
|
||||
if self.sprite_state == len(draw_data["sprites"][self.sprite_name]) - 1:
|
||||
self.sprite_state = 0
|
||||
else:
|
||||
self.sprite_state += 1
|
||||
|
||||
sp = draw_data["sprites"][self.sprite_name][self.sprite_state]
|
||||
rect = sp.get_rect(center = (draw_data["x"] + draw_data["w"] /2, draw_data["y"] + draw_data["h"]/ 2))
|
||||
draw_data["screen"].blit(sp, rect)
|
||||
|
||||
def update(self):
|
||||
pass
|
||||
|
||||
@@ -49,15 +36,13 @@ class Terrain(Object):
|
||||
|
||||
@dataclass
|
||||
class Creature(Object):
|
||||
direction: int = 0 # tuple?
|
||||
#direction: int = 0 # tuple?
|
||||
move_progress: float = 0.0 # 0.0 = старт клетки, 1.0 = конец клетки
|
||||
current_target: tuple = None # (row, col) следующая клетка
|
||||
final_goal: tuple = None
|
||||
move_speed: float = 0.02 # пикселей/кадр
|
||||
render_offset: tuple = (0.0, 0.0)
|
||||
start_pos: tuple = None # (row, col) начальная позиция сегмента пути
|
||||
replan_counter: int = 0
|
||||
REPLAN_INTERVAL: int = 30000
|
||||
waypoints: list = field(default_factory = list)
|
||||
walkable_matrix: list = field(default_factory = list)
|
||||
rocks_matrix: list = field(default_factory = list)
|
||||
@@ -92,12 +77,6 @@ class Creature(Object):
|
||||
self.render_offset = (0.0, 0.0)
|
||||
return
|
||||
|
||||
#self.replan_counter += 1
|
||||
#if self.replan_counter >= self.REPLAN_INTERVAL:
|
||||
# self.replan_counter = 0
|
||||
# self.replan(map_obj.cells, self.start_pos)
|
||||
|
||||
|
||||
if self.current_target is None: return
|
||||
|
||||
#target_row, target_col = self.current_target
|
||||
@@ -258,16 +237,12 @@ class Creature(Object):
|
||||
self.grid_pos[1] + area))
|
||||
self.move(cells, goal)
|
||||
|
||||
|
||||
def move_rand(self, cells, area_start, area_end):
|
||||
goal = (random.randint(area_start, area_end), random.randint(area_start, area_end))
|
||||
while goal == self.grid_pos:
|
||||
goal = (random.randint(area_start, area_end), random.randint(area_start, area_end))
|
||||
self.move(cells, goal)
|
||||
|
||||
|
||||
|
||||
|
||||
@dataclass
|
||||
class Item(Object):
|
||||
# passive_abilities = {}
|
||||
|
||||
Reference in New Issue
Block a user