| | |
| |
|
| | from turtle import Screen, Turtle, mainloop |
| |
|
| | class ColorTurtle(Turtle): |
| |
|
| | def __init__(self, x, y): |
| | Turtle.__init__(self) |
| | self.shape("turtle") |
| | self.resizemode("user") |
| | self.shapesize(3,3,5) |
| | self.pensize(10) |
| | self._color = [0,0,0] |
| | self.x = x |
| | self._color[x] = y |
| | self.color(self._color) |
| | self.speed(0) |
| | self.left(90) |
| | self.pu() |
| | self.goto(x,0) |
| | self.pd() |
| | self.sety(1) |
| | self.pu() |
| | self.sety(y) |
| | self.pencolor("gray25") |
| | self.ondrag(self.shift) |
| |
|
| | def shift(self, x, y): |
| | self.sety(max(0,min(y,1))) |
| | self._color[self.x] = self.ycor() |
| | self.fillcolor(self._color) |
| | setbgcolor() |
| |
|
| | def setbgcolor(): |
| | screen.bgcolor(red.ycor(), green.ycor(), blue.ycor()) |
| |
|
| | def main(): |
| | global screen, red, green, blue |
| | screen = Screen() |
| | screen.delay(0) |
| | screen.setworldcoordinates(-1, -0.3, 3, 1.3) |
| |
|
| | red = ColorTurtle(0, .5) |
| | green = ColorTurtle(1, .5) |
| | blue = ColorTurtle(2, .5) |
| | setbgcolor() |
| |
|
| | writer = Turtle() |
| | writer.ht() |
| | writer.pu() |
| | writer.goto(1,1.15) |
| | writer.write("DRAG!",align="center",font=("Arial",30,("bold","italic"))) |
| | return "EVENTLOOP" |
| |
|
| | if __name__ == "__main__": |
| | msg = main() |
| | print(msg) |
| | mainloop() |
| |
|