Проблема в том, что t.color() работает только с объектами, созданными с помощью Turtle graphics. scr.addshape() добавляет форму из внешнего файла (вероятно, PNG или GIF), и эта форма уже имеет свои собственные цвета, заданные в самом изображении. t.color() не может изменить цвета пикселей существующего изображения.
Чтобы изменить цвет чёрного объекта, добавленного с помощью scr.addshape(), вам нужно будет:
1. Изменить исходное изображение: Самый простой и надежный способ - изменить цвет в самом изображении (например, в редакторе GIMP или Photoshop) перед тем, как добавить его в вашу программу. Сохраните изменённое изображение и загрузите его заново с помощью scr.addshape().
2. Использовать другой подход к рисованию: Если вы хотите динамически изменять цвет, вам не стоит использовать предварительно созданные изображения. Вместо scr.addshape(), создайте форму с помощью черепашьих команд (turtle.begin_fill(), turtle.fillcolor(), turtle.end_fill(),
turtle.circle (), turtle.forward(), и т.д.). Таким образом вы можете контролировать цвет во время выполнения программы.
3. Создать маску и наложение: Это более сложный подход. Вы можете создать отдельный объект черепахи, который будет накладываться поверх вашего чёрного объекта. Этот новый объект можно окрашивать с помощью t.color(). Этот метод потребует больше кода и точных расчётов позиционирования.
Пример использования черепашьих команд:
import turtle
screen = turtle.Screen()
pen = turtle.Turtle()
pen.speed(0) # Установите скорость рисования
# Рисуем чёрный квадрат (или любую другую форму) с помощью команд черепахи
pen.fillcolor("black")
pen.begin_fill()
for _ in range(4):
pen.forward(100)
pen.left(90)
pen.end_fill()
# ...ваш код...
# Изменяем цвет (это будет работать)
pen.fillcolor("red")
pen.begin_fill()
for _ in range(4):
pen.forward(100)
pen.left(90)
pen.end_fill()
turtle.done()
В этом примере цвет заполнения изменяется с помощью pen.fillcolor(). Это правильный подход, если вам нужно динамически менять цвет. Загрузка изображения с помощью scr.addshape() подходит для статических форм, цвет которых не нужно изменять во время выполнения.
В общем, изменение цвета загруженной формы напрямую с помощью t.color() невозможно. Вы должны изменить изображение или использовать другой метод рисования для достижения желаемого результата