Fixed leaky abstraction Map - draw - Object.

This commit is contained in:
shiva404
2026-03-07 00:22:24 +03:00
parent b1548ea182
commit 5ba8c8b3ab
4 changed files with 64 additions and 97 deletions

View File

@@ -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 = {}