#python
Вопрос:
Я пытался следовать этому уроку по созданию пиксельной графики в Turtle: https://www.101computing.net/pixel-art-in-python/
И я попытался скопировать их код, но когда я вставляю его в VS-код, я получаю следующую ошибку: AttributeError: объект «Черепаха» не имеет атрибута «трассировщик»
Запуск их редактора, похоже, работает.
Есть какие-нибудь идеи по поводу того, в чем может быть проблема? Все, что я сделал, это скопировал и вставил код (и исправил некоторые проблемы с отступами).
#Pixel Art - http://www.101computing.net/pixel-art-in-python/
import turtle
myPen = turtle.Turtle()
myPen.tracer(0)
myPen.speed(0)
myPen.color("#000000")
# This function draws a box by drawing each side of the square and using the fill function
def box(intDim):
myPen.begin_fill()
# 0 deg.
myPen.forward(intDim)
myPen.left(90)
# 90 deg.
myPen.forward(intDim)
myPen.left(90)
# 180 deg.
myPen.forward(intDim)
myPen.left(90)
# 270 deg.
myPen.forward(intDim)
myPen.end_fill()
myPen.setheading(0)
boxSize = 10
#Position myPen in top left area of the screen
myPen.penup()
myPen.forward(-100)
myPen.setheading(90)
myPen.forward(100)
myPen.setheading(0)
##Here is an example of how to draw a box
#box(boxSize)
##Here are some instructions on how to move "myPen" around before drawing a box.
#myPen.setheading(0) #point to the right, 90 to go up, 180 to go to the left 270 to go down
#myPen.penup()
#myPen.forward(boxSize)
#myPen.pendown()
#Here is how your PixelArt is stored (using a "list of lists")
pixels = [[0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0]]
pixels.append([0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0])
pixels.append([0,0,1,1,1,1,1,0,0,1,1,1,1,1,0,0])
pixels.append([0,1,1,0,1,1,0,0,0,0,1,1,0,1,1,0])
pixels.append([0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0])
pixels.append([1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1])
pixels.append([1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1])
pixels.append([1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1])
pixels.append([1,1,1,0,0,1,1,1,1,1,1,0,0,1,1,1])
pixels.append([1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1])
pixels.append([1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1])
pixels.append([1,1,1,1,0,0,1,0,0,1,0,0,1,1,1,1])
pixels.append([0,1,1,0,0,0,1,0,0,1,0,0,0,1,1,0])
pixels.append([0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0])
pixels.append([0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0])
pixels.append([0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0])
for i in range (0,len(pixels)):
for j in range (0,len(pixels[i])):
if pixels[i][j]==1:
box(boxSize)
myPen.penup()
myPen.forward(boxSize)
myPen.pendown()
myPen.setheading(270)
myPen.penup()
myPen.forward(boxSize)
myPen.setheading(180)
myPen.forward(boxSize*len(pixels[i]))
myPen.setheading(0)
myPen.pendown()
myPen.getscreen().update()
Комментарии:
1. можете ли вы отредактировать код, который вы пробовали, для ответа на вопрос?
2. Готово, просто добавил его сейчас. Правка: удаление строки .tracer() заставляет ее работать, но да, я пытаюсь полностью пропустить анимацию.
Ответ №1:
Из документов
Изменения начиная с Python 2.6 Методы Turtle.tracer(), Turtle.window_width() и Turtle.window_height() были устранены. Методы с этими именами и функциями теперь доступны только как методы экрана.
Причина, по которой это работает в их онлайн-среде разработки, заключается в том, что у них есть более старая версия python.
Вы можете использовать turtle.tracer(0)
.
Комментарии:
1. Ах, в этом есть смысл! Я должен был подумать о том, чтобы проверить, на какой версии Python они были. Спасибо!