Reputation: 23
I want to make it so that the shape of the cars are customized polygons (they have to be drawn, unfortunately) but they just show up as tiny little arrows instead. I'm not sure what to do and how to make it so that they show up as the cars that I've drawn, where the cars facing right show up as the carright shape and vice versa. This is my first time using Stack Overflow, so please be patient with me. Does anybody know how to help? I'm so stuck!!
#import modules
import turtle, random, time
#initiate screen
screen = turtle.Screen()
screen.bgcolor('darkgray')
screen.delay(0)
#initiate sprite
sprite = turtle.Turtle()
sprite.shape('square')
sprite.penup()
sprite.speed(0)
sprite.ht()
#initate player (clone of sprite)
player = sprite.clone()
player.shape('turtle')
player.fillcolor('forestgreen')
player.st()
#draw car (facing left)
turtle.begin_poly()
pen = turtle.Turtle()
pen.speed(0)
pen.pensize(1)
pen.up()
pen.setheading(90)
pen.color('black')
pen.forward(2)
pen.down()
pen.forward(16)
pen.up()
pen.setposition(0 - 1, 0)
pen.forward(1)
pen.down()
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(5)
pen.color('red')
pen.forward(8)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 2,0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 3, 0)
for i in range(1,4):
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('red')
pen.forward(13)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0-(3+i), 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(7)
pen.color('red')
pen.forward(4)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 7, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(5)
pen.color('red')
pen.forward(7)
pen.color('black')
pen.forward(5)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 8,0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(10)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 9, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 10, 0)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(2)
pen.up()
pen.setposition(0 - 11, 0)
for i in range(1,3):
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 -(11+i), 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 14, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 15, 0)
for i in range(1,3):
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0-(15+i), 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(3)
pen.up()
pen.setposition(0 - 18, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 19, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('red')
pen.forward(13)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 20, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 21, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 22, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(9)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 23, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(3)
pen.color('red')
pen.forward(6)
pen.color('black')
pen.forward(3)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.up()
pen.setposition(0 - 24, 0 - 1)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(4)
pen.color('black')
pen.forward(7)
pen.color('skyblue')
pen.forward(4)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(2)
pen.up()
pen.setposition(0 - 25, 0 - 2)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(2)
pen.color('skyblue')
pen.forward(12)
pen.color('white')
pen.forward(1)
pen.color('skyblue')
pen.forward(2)
pen.color('black')
pen.forward(2)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 26, 0 - 1)
pen.down()
pen.color('black')
pen.forward(3)
pen.color('skyblue')
pen.forward(14)
pen.color('white')
pen.forward(1)
pen.color('skyblue')
pen.forward(2)
pen.color('black')
pen.forward(3)
pen.up()
pen.setposition(0 - 27, 0)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('skyblue')
pen.forward(14)
pen.color('white')
pen.forward(1)
pen.color('skyblue')
pen.forward(2)
pen.color('black')
pen.forward(2)
pen.up()
pen.setposition(0 - 28, 0)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('skyblue')
pen.forward(17)
pen.color('black')
pen.forward(2)
pen.up()
pen.setposition(0 - 29, 0)
pen.down()
pen.color('black')
pen.forward(4)
pen.color('skyblue')
pen.forward(13)
pen.color('black')
pen.forward(4)
pen.up()
pen.setposition(0 - 30, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('black')
pen.forward(3)
pen.color('skyblue')
pen.forward(7)
pen.color('black')
pen.forward(3)
pen.color('red')
pen.forward(3)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 31, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('red')
pen.forward(4)
pen.color('black')
pen.forward(7)
pen.color('red')
pen.forward(6)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 32, 0)
for i in range(1,6):
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('red')
pen.forward(17)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 -(32+i), 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(16)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 38, 0)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(2)
pen.up()
pen.setposition(0 - 39, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 40, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(2)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(8)
pen.color('black')
pen.forward(2)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 41, 0 + 1)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(11)
pen.color('red')
pen.forward(3)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 42, 0 + 2)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(13)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 - 43, 0 + 3)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('firebrick')
pen.forward(11)
pen.color('black')
pen.forward(2)
pen.up()
pen.setposition(0 - 44, 0 + 4)
pen.down()
pen.color('black')
pen.forward(11)
pen.hideturtle()
turtle.end_poly()
carleft = turtle.get_poly()
screen.register_shape('carleft', carleft)
#draw car (facing right)
turtle.begin_poly()
pen = turtle.Turtle()
pen.speed(0)
screen = turtle.Screen()
pen.pensize(1)
pen.up()
pen.setheading(90)
pen.color('black')
pen.forward(2)
pen.down()
pen.forward(16)
pen.up()
pen.setposition(0 + 1, 0)
pen.forward(1)
pen.down()
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(5)
pen.color('red')
pen.forward(8)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 2,0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 3, 0)
for i in range(1,4):
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('red')
pen.forward(13)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 +(3+i), 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(7)
pen.color('red')
pen.forward(4)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 7, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(5)
pen.color('red')
pen.forward(7)
pen.color('black')
pen.forward(5)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 8,0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(10)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 9, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 10, 0)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(2)
pen.up()
pen.setposition(0 + 11, 0)
for i in range(1,3):
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + (11+i), 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 14, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 15, 0)
for i in range(1,3):
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 +(15+i), 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(3)
pen.up()
pen.setposition(0 + 18, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 19, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('red')
pen.forward(13)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 20, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 21, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 22, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(9)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 23, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(3)
pen.color('red')
pen.forward(6)
pen.color('black')
pen.forward(3)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.up()
pen.setposition(0 + 24, 0 - 1)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(4)
pen.color('black')
pen.forward(7)
pen.color('skyblue')
pen.forward(4)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(2)
pen.up()
pen.setposition(0 + 25, 0 - 2)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(2)
pen.color('skyblue')
pen.forward(12)
pen.color('white')
pen.forward(1)
pen.color('skyblue')
pen.forward(2)
pen.color('black')
pen.forward(2)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 26, 0 - 1)
pen.down()
pen.color('black')
pen.forward(3)
pen.color('skyblue')
pen.forward(14)
pen.color('white')
pen.forward(1)
pen.color('skyblue')
pen.forward(2)
pen.color('black')
pen.forward(3)
pen.up()
pen.setposition(0 + 27, 0)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('skyblue')
pen.forward(14)
pen.color('white')
pen.forward(1)
pen.color('skyblue')
pen.forward(2)
pen.color('black')
pen.forward(2)
pen.up()
pen.setposition(0 + 28, 0)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('skyblue')
pen.forward(17)
pen.color('black')
pen.forward(2)
pen.up()
pen.setposition(0 + 29, 0)
pen.down()
pen.color('black')
pen.forward(4)
pen.color('skyblue')
pen.forward(13)
pen.color('black')
pen.forward(4)
pen.up()
pen.setposition(0 + 30, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('black')
pen.forward(3)
pen.color('skyblue')
pen.forward(7)
pen.color('black')
pen.forward(3)
pen.color('red')
pen.forward(3)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 31, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('red')
pen.forward(4)
pen.color('black')
pen.forward(7)
pen.color('red')
pen.forward(6)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 32, 0)
for i in range(1,6):
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('red')
pen.forward(17)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 +(32+i), 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(16)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 38, 0)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(2)
pen.up()
pen.setposition(0 + 39, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 40, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(2)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(8)
pen.color('black')
pen.forward(2)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 41, 0 + 1)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(11)
pen.color('red')
pen.forward(3)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 42, 0 + 2)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(13)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.setposition(0 + 43, 0 + 3)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('firebrick')
pen.forward(11)
pen.color('black')
pen.forward(2)
pen.up()
pen.setposition(0 + 44, 0 + 4)
pen.down()
pen.color('black')
pen.forward(11)
pen.hideturtle()
turtle.end_poly()
carright = turtle.get_poly()
screen.register_shape('carright', carright)
#make list of car directions
car_directions = ['carleft', 'carright']
#make list of cars
cars = []
#make cars
for i in range(7):
car = sprite.clone()
if i % 2:
car.seth(0)
car.shape(car_directions[1])
else:
car.seth(180)
car.shape(car_directions[0])
car.goto(random.randint(-200,200), -120+i*40)
car.st()
cars.append(car)
Upvotes: 2
Views: 1082
Reputation: 41872
There are a couple of problems here. The first is that you're mixing object-oriented turtle with functional turtle. That is, you're having your turtle instance pen
do all the motions, but you're extracting the polygon from the default turtle turtle
which hasn't gone anywhere.
Fixing this, you'll get a mask image of your car. Here's the output of the simplification of your code below to show this:
Now we see the next issue. You can compose a turtle cursor out of multiple colored polygons (multiple Shape
components). But each individual polygon is rendered in one color. So you have to take a different approach to your car design.
Finally, you need to consider the orientation of the shape you draw to get it in sync with turtle, and make sure that it has its center of mass at (0, 0)
so it turns cleanly with left()
and right()
.
# import modules
from turtle import Screen, Turtle
from random import randint
# initiate screen
screen = Screen()
screen.bgcolor('darkgray')
# draw car
pen = Turtle()
pen.speed('fastest')
pen.begin_poly()
pen.up()
pen.setheading(90)
pen.forward(2)
pen.down()
pen.forward(16)
pen.up()
pen.goto(1, 0)
pen.forward(1)
pen.down()
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(5)
pen.color('red')
pen.forward(8)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(2, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(3, 0)
for i in range(1, 4):
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('red')
pen.forward(13)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(3 + i, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(7)
pen.color('red')
pen.forward(4)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(7, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(5)
pen.color('red')
pen.forward(7)
pen.color('black')
pen.forward(5)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(8, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(10)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(9, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(10, 0)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(2)
pen.up()
pen.goto(11, 0)
for i in range(1, 3):
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(11 + i, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(14, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(15, 0)
for i in range(1, 3):
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(15 + i, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(3)
pen.up()
pen.goto(18, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(19, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('red')
pen.forward(13)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(20, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(21, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(22, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(9)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('white')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(23, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(3)
pen.color('red')
pen.forward(6)
pen.color('black')
pen.forward(3)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.up()
pen.goto(24, -1)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(4)
pen.color('black')
pen.forward(7)
pen.color('skyblue')
pen.forward(4)
pen.color('black')
pen.forward(1)
pen.color('skyblue')
pen.forward(1)
pen.color('black')
pen.forward(2)
pen.up()
pen.goto(25, -2)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(2)
pen.color('skyblue')
pen.forward(12)
pen.color('white')
pen.forward(1)
pen.color('skyblue')
pen.forward(2)
pen.color('black')
pen.forward(2)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(26, -1)
pen.down()
pen.color('black')
pen.forward(3)
pen.color('skyblue')
pen.forward(14)
pen.color('white')
pen.forward(1)
pen.color('skyblue')
pen.forward(2)
pen.color('black')
pen.forward(3)
pen.up()
pen.goto(27, 0)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('skyblue')
pen.forward(14)
pen.color('white')
pen.forward(1)
pen.color('skyblue')
pen.forward(2)
pen.color('black')
pen.forward(2)
pen.up()
pen.goto(28, 0)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('skyblue')
pen.forward(17)
pen.color('black')
pen.forward(2)
pen.up()
pen.goto(29, 0)
pen.down()
pen.color('black')
pen.forward(4)
pen.color('skyblue')
pen.forward(13)
pen.color('black')
pen.forward(4)
pen.up()
pen.goto(30, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('black')
pen.forward(3)
pen.color('skyblue')
pen.forward(7)
pen.color('black')
pen.forward(3)
pen.color('red')
pen.forward(3)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(31, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('red')
pen.forward(4)
pen.color('black')
pen.forward(7)
pen.color('red')
pen.forward(6)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(32, 0)
for i in range(1, 6):
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(2)
pen.color('red')
pen.forward(17)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(32 + i, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(16)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(38, 0)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(14)
pen.color('black')
pen.forward(2)
pen.up()
pen.goto(39, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(12)
pen.color('black')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(40, 0)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(1)
pen.color('black')
pen.forward(2)
pen.color('firebrick')
pen.forward(3)
pen.color('red')
pen.forward(8)
pen.color('black')
pen.forward(2)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(41, 1)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(2)
pen.color('black')
pen.forward(11)
pen.color('red')
pen.forward(3)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(42, 2)
pen.down()
pen.color('black')
pen.forward(1)
pen.color('firebrick')
pen.forward(1)
pen.color('red')
pen.forward(13)
pen.color('firebrick')
pen.forward(1)
pen.color('black')
pen.forward(1)
pen.up()
pen.goto(43, 3)
pen.down()
pen.color('black')
pen.forward(2)
pen.color('firebrick')
pen.forward(11)
pen.color('black')
pen.forward(2)
pen.up()
pen.goto(44, 4)
pen.down()
pen.color('black')
pen.forward(11)
pen.hideturtle()
pen.end_poly()
car_polygon = pen.get_poly()
screen.register_shape('car', car_polygon)
# make list of cars
cars = []
# initiate sprite
sprite = Turtle()
sprite.hideturtle()
sprite.shape('car')
sprite.penup()
sprite.speed('fastest')
# make cars
for i in range(7):
car = sprite.clone()
if i % 2:
car.setheading(0)
else:
car.setheading(180)
car.goto(randint(-200, 200), -120 + i * 40)
car.showturtle()
cars.append(car)
screen.exitonclick()
Although GIF images are an alternative, they won't turn like polygons -- turtle will always show the same image regardless of direction. But with polygons, the turtle will turn appropriately with no additional effort.
Upvotes: 1
Reputation: 2147
That's impressive for Turtle. I was expecting Atari 2600 racecar sprites. If they're just going left & right, then you could screenshot those images, save them as a carleft.gif
and carright.gif
in the same directory as your Turtle script, then register or add the images and use those shapes.
screen .register_shape( 'carleft.gif' )
screen .register_shape( 'carright.gif' )
sprite .shape( 'carleft' )
player .shape( 'carright' )
Upvotes: 1