PageRenderTime 182ms CodeModel.GetById 100ms app.highlight 7ms RepoModel.GetById 74ms app.codeStats 0ms

/Demo/turtle/tdemo_colormixer.py

http://unladen-swallow.googlecode.com/
Python | 58 lines | 48 code | 9 blank | 1 comment | 1 complexity | 50a3c11aaaba691e6936674c7188c853 MD5 | raw file
 1# colormixer
 2
 3from turtle import Screen, Turtle, mainloop
 4
 5class ColorTurtle(Turtle):
 6
 7    def __init__(self, x, y):
 8        Turtle.__init__(self)
 9        self.shape("turtle")
10        self.resizemode("user")
11        self.shapesize(3,3,5)
12        self.pensize(10)
13        self._color = [0,0,0]
14        self.x = x
15        self._color[x] = y
16        self.color(self._color)
17        self.speed(0)
18        self.left(90)
19        self.pu()
20        self.goto(x,0)
21        self.pd()
22        self.sety(1)
23        self.pu()
24        self.sety(y)
25        self.pencolor("gray25")
26        self.ondrag(self.shift)
27
28    def shift(self, x, y):
29        self.sety(max(0,min(y,1)))
30        self._color[self.x] = self.ycor()
31        self.fillcolor(self._color)
32        setbgcolor()
33
34def setbgcolor():
35    screen.bgcolor(red.ycor(), green.ycor(), blue.ycor())
36
37def main():
38    global screen, red, green, blue
39    screen = Screen()
40    screen.delay(0)
41    screen.setworldcoordinates(-1, -0.3, 3, 1.3)
42
43    red = ColorTurtle(0, .5)
44    green = ColorTurtle(1, .5)
45    blue = ColorTurtle(2, .5)
46    setbgcolor()
47
48    writer = Turtle()
49    writer.ht()
50    writer.pu()
51    writer.goto(1,1.15)
52    writer.write("DRAG!",align="center",font=("Arial",30,("bold","italic")))
53    return "EVENTLOOP"
54
55if __name__ == "__main__":
56    msg = main()
57    print msg
58    mainloop()