def move(): old_x = player.x old_y = player.y new_x = player.x + movement[0] new_y = player.y + movement[1] if not render.is_passable(new_x, new_y): return 0 if 0 < new_x < FIELD_WIDTH: player.x = new_x if 0 < new_y < FIELD_HEIGHT: player.y = new_y if not render.is_edge(player.x, player.y) and player.on_edge: print("off edge") player.on_edge = False render.drawPoint(old_x, old_y, player.on_edge) elif render.is_edge(player.x, player.y) and not player.on_edge: print("on edge") player.on_edge = True render.drawPoint(player.x, player.y, False) min_area = None min_point = None for i, j in [p for p in [(1, 0), (-1, 0), (0, 1), (0, -1)]]: area = render.floodfill(player.x+i, player.y+j, BACKGROUND_COLOR, 0xF0F00F) point = (player.x+i, player.y+j) if area and min_area == None: min_area = area min_point = point elif area and area < min_area: min_area = area min_point = point print((player.x, player.y), min_point) render.floodfill(min_point[0], min_point[1], BACKGROUND_COLOR, AREA_COLOR, True) render.remove_line() if not player.on_edge: tenative.add((player.x, player.y)) render.drawPoint(player.x, player.y, player.on_edge) #edge should not be passed
def draw(self): for i in self.joints: render.drawPoint(i.getAnchor(), render.green)
def draw(self): render.drawPoint(self.pos)