Example #1
0
def spaceship_init(x, y, scale):
    '''Creates and returns a list of graphics objects to make up a spaceship'''

    shapes = []

    r = gr.Rectangle(gr.Point(x - scale * 10, y),
                     gr.Point(x + scale * 10, y - scale * 80))
    r.setFill(gr.color_rgb(185, 150, 185))
    shapes.append(r)

    p = gr.Polygon(gr.Point(x - scale * 10, y - scale * 80),
                   gr.Point(x, y - scale * 100),
                   gr.Point(x + scale * 10, y - scale * 80))
    p.setFill(gr.color_rgb(150, 170, 200))
    shapes.append(p)

    p = gr.Polygon(gr.Point(x - scale * 10, y),
                   gr.Point(x - scale * 10, y - scale * 20),
                   gr.Point(x - scale * 25, y))
    p.setFill(gr.color_rgb(200, 170, 150))
    shapes.append(p)

    p = gr.Polygon(gr.Point(x + scale * 10, y),
                   gr.Point(x + scale * 10, y - scale * 20),
                   gr.Point(x + scale * 25, y))
    p.setFill(gr.color_rgb(200, 170, 150))
    shapes.append(p)

    return shapes
Example #2
0
def fire2_init(x, y, scale):
    '''Creates and returns a list of graphics objects to make up a fire'''
    shapes = []

    p = gr.Polygon(gr.Point(x + scale * 30, y + scale * 63),
                   gr.Point(x + scale * 30, y + scale * 45),
                   gr.Point(x + scale * 20, y + scale * 63))
    p.setFill(gr.color_rgb(255, 165, 0))
    shapes.append(p)
    p = gr.Polygon(gr.Point(x + scale * 15, y + scale * 63),
                   gr.Point(x + scale * 10, y + scale * 45),
                   gr.Point(x + scale * 10, y + scale * 63))
    p.setFill(gr.color_rgb(255, 165, 0))
    shapes.append(p)
    p = gr.Polygon(gr.Point(x, y + scale * 63),
                   gr.Point(x - scale * 5, y + scale * 45),
                   gr.Point(x - scale * 10, y + scale * 63))
    p.setFill(gr.color_rgb(255, 165, 0))
    shapes.append(p)
    p = gr.Polygon(gr.Point(x - scale * 20, y + scale * 63),
                   gr.Point(x - scale * 30, y + scale * 45),
                   gr.Point(x - scale * 30, y + scale * 63))
    p.setFill(gr.color_rgb(255, 165, 0))
    shapes.append(p)

    return shapes
Example #3
0
def potion_init(x, y, scale):
    '''Creates and returns a list of graphics objects to make up a potion'''
    shapes = []

    p = gr.Polygon(gr.Point(x + scale * 30, y + scale * 80),
                   gr.Point(x + scale * 40, y + scale * 60),
                   gr.Point(x + scale * 40, y + scale * 40),
                   gr.Point(x + scale * 50, y + scale * 40),
                   gr.Point(x + scale * 50, y + scale * 60),
                   gr.Point(x + scale * 60, y + scale * 80))
    p.setFill(gr.color_rgb(198, 226, 255))
    shapes.append(p)
    p = gr.Polygon(gr.Point(x + scale * 30, y + scale * 80),
                   gr.Point(x + scale * 40, y + scale * 60),
                   gr.Point(x + scale * 40, y + scale * 50),
                   gr.Point(x + scale * 50, y + scale * 50),
                   gr.Point(x + scale * 50, y + scale * 60),
                   gr.Point(x + scale * 60, y + scale * 80))
    p.setFill(gr.color_rgb(255, 62, 150))
    shapes.append(p)
    r = gr.Rectangle(gr.Point(x + scale * 42, y + scale * 35),
                     gr.Point(x + scale * 48, y + scale * 40))
    r.setFill(gr.color_rgb(139, 71, 38))
    shapes.append(r)

    return shapes
Example #4
0
def cat_init(x, y, scale):
    '''Creates and returns a list of graphics objects to make up a cat'''
    shapes = []
    #cat
    p = gr.Polygon(gr.Point(x + scale * 180, y + scale * 40),
                   gr.Point(x + scale * 190, y + scale * 35),
                   gr.Point(x + scale * 190, y + scale * 50))
    p.setFill(gr.color_rgb(30, 30, 30))
    shapes.append(p)
    p = gr.Polygon(gr.Point(x + scale * 180, y + scale * 40),
                   gr.Point(x + scale * 170, y + scale * 35),
                   gr.Point(x + scale * 170, y + scale * 50))
    p.setFill(gr.color_rgb(30, 30, 30))
    shapes.append(p)
    c = gr.Circle(gr.Point(x + scale * 180, y + scale * 50), scale * 10)
    c.setFill(gr.color_rgb(0, 0, 0))
    shapes.append(c)

    c = gr.Circle(gr.Point(x + scale * 175, y + scale * 50), scale * 2)
    c.setFill(gr.color_rgb(67, 205, 128))
    shapes.append(c)
    c = gr.Circle(gr.Point(x + scale * 185, y + scale * 50), scale * 2)
    c.setFill(gr.color_rgb(67, 205, 128))
    shapes.append(c)

    #body
    r = gr.Rectangle(gr.Point(x + scale * 155, y + scale * 60),
                     gr.Point(x + scale * 185, y + scale * 80))
    r.setFill(gr.color_rgb(0, 0, 0))
    shapes.append(r)
    c = gr.Circle(gr.Point(x + scale * 155, y + scale * 70), scale * 10)
    c.setFill(gr.color_rgb(0, 0, 0))
    shapes.append(c)

    r = gr.Rectangle(gr.Point(x + scale * 120, y + scale * 65),
                     gr.Point(x + scale * 155, y + scale * 70))
    r.setFill(gr.color_rgb(0, 0, 0))
    shapes.append(r)
    r = gr.Rectangle(gr.Point(x + scale * 120, y + scale * 40),
                     gr.Point(x + scale * 125, y + scale * 70))
    r.setFill(gr.color_rgb(0, 0, 0))
    shapes.append(r)
    #legs
    r = gr.Rectangle(gr.Point(x + scale * 150, y + scale * 80),
                     gr.Point(x + scale * 155, y + scale * 100))
    r.setFill(gr.color_rgb(0, 0, 0))
    shapes.append(r)
    r = gr.Rectangle(gr.Point(x + scale * 165, y + scale * 80),
                     gr.Point(x + scale * 170, y + scale * 100))
    r.setFill(gr.color_rgb(0, 0, 0))
    shapes.append(r)
    r = gr.Rectangle(gr.Point(x + scale * 180, y + scale * 80),
                     gr.Point(x + scale * 185, y + scale * 100))
    r.setFill(gr.color_rgb(0, 0, 0))
    shapes.append(r)

    return shapes
Example #5
0
def riverboat(x, y, scale):  # define the river and boat
    riverlist = [
        g.Point(x - 1600 * scale, y + 10 * scale),  # river point list
        g.Point(x + 100 * scale, y + 20 * scale),
        g.Point(x + 200 * scale, y + 10 * scale),
        g.Point(x + 250 * scale, y + 30 * scale),
        g.Point(x + 300 * scale, y + 20 * scale),
        g.Point(x + 450 * scale, y + 30 * scale),
        g.Point(x + 500 * scale, y + 10 * scale),
        g.Point(x + 600 * scale, y + 20 * scale),
        g.Point(x + 750 * scale, y + 30 * scale),
        g.Point(x + 1600 * scale, y + 10 * scale),
        g.Point(x + 1600 * scale, y + 110 * scale),
        g.Point(x + 750 * scale, y + 130 * scale),
        g.Point(x + 600 * scale, y + 120 * scale),
        g.Point(x + 500 * scale, y + 110 * scale),
        g.Point(x + 450 * scale, y + 130 * scale),
        g.Point(x + 300 * scale, y + 120 * scale),
        g.Point(x + 250 * scale, y + 130 * scale),
        g.Point(x + 200 * scale, y + 110 * scale),
        g.Point(x + 100 * scale, y + 120 * scale),
        g.Point(x - 1600 * scale, y + 110 * scale)
    ]
    riverflow = g.Polygon(riverlist)  #river drawing
    riverflow.setFill("blue")
    riverflow.setOutline("green")
    riverflow.setWidth(5)

    boatlist1 = [
        g.Point(x - 300 * scale, y + 70 * scale),  # boat1 point list
        g.Point(x - 250 * scale, y + 60 * scale),
        g.Point(x - 200 * scale, y + 60 * scale),
        g.Point(x - 200 * scale, y + 80 * scale),
        g.Point(x - 250 * scale, y + 80 * scale)
    ]
    boatbody1 = g.Polygon(boatlist1)  # boat1 drawing
    boatbody1.setFill("red")
    boatbody1.setOutline("black")
    boatbody1.setWidth(5)
    boatlist2 = [
        g.Point(x - 100 * scale, y + 70 * scale),  # boat2 point list
        g.Point(x - 50 * scale, y + 60 * scale),
        g.Point(x + 0 * scale, y + 60 * scale),
        g.Point(x + 0 * scale, y + 80 * scale),
        g.Point(x - 50 * scale, y + 80 * scale)
    ]
    boatbody2 = g.Polygon(boatlist2)  # boat2 drawing
    boatbody2.setFill("orange")
    boatbody2.setOutline("black")
    boatbody2.setWidth(5)

    test = [riverflow, boatbody1, boatbody2]

    return test
Example #6
0
def icecream_init(x,y,scale):
	'''
	  Creates the list of objects needed to draw an ice cream
	  cone at position (x,y) with the given scale.
	'''
	shapes = []
	
	#cone IDX 0
	t = gr.Polygon(gr.Point(x,y),gr.Point(x+5*scale,y-15*scale),
		gr.Point(x-5*scale,y-15*scale))
	t.setFill(gr.color_rgb(222,184,135))
	shapes.append(t)
	
	#scoops IDX 1-4
	c = gr.Circle(gr.Point(x,y-20*scale),6*scale)
	c.setFill(gr.color_rgb(255,0,127))
	shapes.append(c)
	
	c = gr.Circle(gr.Point(x,y-30*scale),6*scale)
	c.setFill(gr.color_rgb(0,255,128))
	shapes.append(c)
	
	c = gr.Circle(gr.Point(x,y-40*scale),6*scale)
	c.setFill(gr.color_rgb(153,255,255))
	shapes.append(c)
	
	c = gr.Circle(gr.Point(x,y-50*scale),6*scale)
	c.setFill(gr.color_rgb(255,153,153))
	shapes.append(c)
	
	return shapes
Example #7
0
def animate_mario(mario, frame, win):
    moustache = mario[4]

    if frame % 20 == 0:
        # move moustache up
        moustache.move(0, -5)

    elif frame % 20 == 10:
        # move moustache down
        moustache.move(0, 5)

    if frame % 80 == 0:  # starting move right
        mario[0].undraw()
        # get the x, y values from overalls
        pts = mario[1].getPoints()  # first point is the anchor
        # scale factor is difference in y values of first two points / 120
        scale = (pts[0].getY() - pts[1].getY()) / 120
        newshirt = gr.Polygon(
            red_shirt_points(pts[0].getX(), pts[0].getY(), scale, False))
        newshirt.setFill('red')
        newshirt.draw(win)
        mario[1].undraw()
        mario[1].draw(win)  # overdrawing the shirt
        mario[0] = newshirt

    elif frame % 80 == 40:  # starting move left
        mario[0].undraw()
        # get the x, y values from overalls
        pts = mario[1].getPoints()  # first point is the anchor
        # scale factor is difference in y values of first two points / 120
        scale = (pts[0].getY() - pts[1].getY()) / 120
        newshirt = gr.Polygon(
            red_shirt_points(pts[0].getX(), pts[0].getY(), scale, True))
        newshirt.setFill('red')
        newshirt.draw(win)
        mario[1].undraw()
        mario[1].draw(win)  # overdrawing the shirt
        mario[0] = newshirt

    # have all of mario move left to right
    if frame % 80 < 40:  # move right with arm up
        for item in mario:
            item.move(2, 0)
    else:  # move left with arm down
        for item in mario:
            item.move(-2, 0)
def citywhale(x, y, scale):

    # define a polygon for the body
    bodylist = [
        gr.Point(x + 5 * scale, y - 5 * scale),
        gr.Point(x + 25 * scale, y - 2 * scale),
        gr.Point(x + 45 * scale, y - 8 * scale),
        gr.Point(x + 70 * scale, y - 15 * scale),
        gr.Point(x + 100 * scale, y - 6 * scale),
        gr.Point(x + 90 * scale, y - 20 * scale),
        gr.Point(x + 100 * scale, y - 34 * scale),
        gr.Point(x + 80 * scale, y - 25 * scale),
        gr.Point(x + 55 * scale, y - 27 * scale),
        gr.Point(x + 45 * scale, y - 30 * scale),
        gr.Point(x + 24 * scale, y - 27 * scale),
        gr.Point(x + 8 * scale, y - 24 * scale),
        gr.Point(x - 8 * scale, y - 25 * scale)
    ]
    whalebody = gr.Polygon(bodylist)
    whalebody.setFill('purple')
    whalebody.setOutline('darkblue')
    whalebody.setWidth(4)

    # define a polygon for the mouth
    mouthlist = [
        gr.Point(x + 24 * scale, y - 27 * scale),
        gr.Point(x + 8 * scale, y - 24 * scale),
        gr.Point(x - 8 * scale, y - 25 * scale),
        gr.Point(x + 8 * scale, y - 32 * scale)
    ]
    whalemouth = gr.Polygon(mouthlist)
    whalemouth.setFill('grey')
    whalemouth.setOutline('dark blue')
    whalemouth.setWidth(2)

    # define four rectangles for the city

    # put all these objects into a list

    whale = [whalebody, whalemouth]

    # return the list

    return whale
Example #9
0
def plant_init(x, y, scale):
    '''Creates and returns a list of graphics objects to make up a plant'''
    shapes = []

    #pot
    r = gr.Rectangle(gr.Point(x + scale * 70, y + scale * 50),
                     gr.Point(x + scale * 100, y + scale * 60))
    r.setFill(gr.color_rgb(255, 130, 71))
    shapes.append(r)
    p = gr.Polygon(gr.Point(x + scale * 80, y + scale * 80),
                   gr.Point(x + scale * 75, y + scale * 60),
                   gr.Point(x + scale * 95, y + scale * 60),
                   gr.Point(x + scale * 90, y + scale * 80))
    p.setFill(gr.color_rgb(255, 130, 71))
    shapes.append(p)
    #leaves
    p = gr.Polygon(gr.Point(x + scale * 70, y + scale * 50),
                   gr.Point(x + scale * 60, y + scale * 30),
                   gr.Point(x + scale * 80, y + scale * 50))
    p.setFill(gr.color_rgb(152, 251, 152))
    shapes.append(p)
    p = gr.Polygon(gr.Point(x + scale * 75, y + scale * 50),
                   gr.Point(x + scale * 80, y + scale * 20),
                   gr.Point(x + scale * 85, y + scale * 50))
    p.setFill(gr.color_rgb(152, 251, 152))
    shapes.append(p)
    p = gr.Polygon(gr.Point(x + scale * 85, y + scale * 50),
                   gr.Point(x + scale * 90, y + scale * 20),
                   gr.Point(x + scale * 100, y + scale * 50))
    p.setFill(gr.color_rgb(152, 251, 152))
    shapes.append(p)
    p = gr.Polygon(gr.Point(x + scale * 90, y + scale * 50),
                   gr.Point(x + scale * 110, y + scale * 30),
                   gr.Point(x + scale * 100, y + scale * 50))
    p.setFill(gr.color_rgb(152, 251, 152))
    shapes.append(p)

    return shapes
Example #10
0
def thumbStack(x, y, scale, win):
    #wrist:rectangle objects
    wrist = gr.Rectangle(gr.Point(x + 60 * scale, y + 105 * scale),
                         gr.Point(x + 120 * scale, y + 215 * scale))
    points = [
        gr.Point(x + 120 * scale, y + 125 * scale),
        gr.Point(x + 142 * scale, y + 115 * scale),
        gr.Point(x + 183 * scale, y + 56 * scale),
        gr.Point(x + 190 * scale, y + 16 * scale),
        gr.Point(x + 210 * scale, y + 16 * scale),
        gr.Point(x + 220 * scale, y + 56 * scale),
        gr.Point(x + 204 * scale, y + 105 * scale),
        gr.Point(x + 262 * scale, y + 104 * scale),
        gr.Point(x + 259 * scale, y + 124 * scale),
        gr.Point(x + 245 * scale, y + 126 * scale),
        gr.Point(x + 259 * scale, y + 124 * scale),
        gr.Point(x + 258 * scale, y + 144 * scale),
        gr.Point(x + 244 * scale, y + 144 * scale),
        gr.Point(x + 258 * scale, y + 144 * scale),
        gr.Point(x + 256 * scale, y + 164 * scale),
        gr.Point(x + 243 * scale, y + 164 * scale),
        gr.Point(x + 256 * scale, y + 164 * scale),
        gr.Point(x + 254 * scale, y + 181 * scale),
        gr.Point(x + 241 * scale, y + 179 * scale),
        gr.Point(x + 254 * scale, y + 181 * scale),
        gr.Point(x + 251 * scale, y + 204 * scale),
        gr.Point(x + 120 * scale, y + 195 * scale),
        gr.Point(x + 120 * scale, y + 125 * scale)
    ]
    #thumb:polygon objects
    thumb = gr.Polygon(points)
    #set color for both objects
    wrist.setFill("dodgerblue")
    thumb.setFill("goldenrod")
    #set the termination condition
    if scale < 0.4:
        return
    #draw wrist and thumb
    wrist.draw(win)
    thumb.draw(win)
    #call thumbStack recursively
    thumbStack(x, y + scale * 200, scale * 0.8, win)
Example #11
0
def background_init(x, y, scale):
    '''Creates and returns a list of graphics objects to make up a background'''
    shapes = []

    r = gr.Rectangle(gr.Point(x, y), gr.Point(x + scale * 500,
                                              y + scale * 400))
    r.setFill(gr.color_rgb(205, 170, 125))
    shapes.append(r)
    r = gr.Rectangle(gr.Point(x, y + scale * 300),
                     gr.Point(x + scale * 500, y + scale * 400))
    r.setFill(gr.color_rgb(139, 71, 38))
    shapes.append(r)

    #shelf
    r = gr.Rectangle(gr.Point(x + scale * 20, y + scale * 80),
                     gr.Point(x + scale * 120, y + scale * 90))
    r.setFill(gr.color_rgb(139, 71, 38))
    shapes.append(r)
    r = gr.Rectangle(gr.Point(x + scale * 120, y + scale * 100),
                     gr.Point(x + scale * 250, y + scale * 110))
    r.setFill(gr.color_rgb(139, 71, 38))
    shapes.append(r)
    r = gr.Rectangle(gr.Point(x + scale * 250, y + scale * 130),
                     gr.Point(x + scale * 340, y + scale * 140))
    r.setFill(gr.color_rgb(139, 71, 38))
    shapes.append(r)

    r = gr.Rectangle(gr.Point(x + scale * 340, y + scale * 170),
                     gr.Point(x + scale * 450, y + scale * 180))
    r.setFill(gr.color_rgb(139, 71, 38))
    shapes.append(r)

    #CrystalBallholder
    p = gr.Polygon(gr.Point(x + scale * 210, y + scale * 100),
                   gr.Point(x + scale * 220, y + scale * 90),
                   gr.Point(x + scale * 240, y + scale * 90),
                   gr.Point(x + scale * 250, y + scale * 100))
    p.setFill(gr.color_rgb(108, 123, 139))
    shapes.append(p)

    return shapes
Example #12
0
def citywhale(x, y, scale):

    # define a polygon for the body, list of points
    bodylist = [
        gr.Point(x + 5 * scale,
                 y - 5 * scale),  # starts at lower left of the whale body
        gr.Point(x + 25 * scale, y - 2 * scale),
        gr.Point(x + 45 * scale, y - 8 * scale),
        gr.Point(x + 70 * scale, y - 15 * scale),
        gr.Point(x + 100 * scale, y - 6 * scale),
        gr.Point(x + 90 * scale, y - 20 * scale),
        gr.Point(x + 100 * scale, y - 34 * scale),
        gr.Point(x + 80 * scale, y - 25 * scale),
        gr.Point(x + 55 * scale, y - 27 * scale),
        gr.Point(x + 45 * scale, y - 30 * scale),
        gr.Point(x + 30 * scale, y - 30 * scale),
        gr.Point(x + 24 * scale, y - 27 * scale),
        gr.Point(x + 8 * scale, y - 24 * scale),
        gr.Point(x - 8 * scale, y - 25 * scale)
    ]
    whalebody = gr.Polygon(bodylist)
    whalebody.setFill("purple")
    whalebody.setOutline("dark blue")
    whalebody.setWidth(4)

    # define a polygon for the mouth
    mouthlist = [
        gr.Point(x + 24 * scale, y - 27 * scale),
        gr.Point(x + 8 * scale, y - 24 * scale),
        gr.Point(x - 8 * scale, y - 25 * scale),
        gr.Point(x + 8 * scale, y - 30 * scale)
    ]
    whalemouth = gr.Polygon(mouthlist)
    whalemouth.setFill("grey")
    whalemouth.setOutline("dark blue")
    whalemouth.setWidth(2)

    c1 = gr.Circle(gr.Point(x + 20 * scale, y - 20 * scale), 5)
    c1.setFill("black")

    # define four rectangles for the city
    b1 = gr.Rectangle(gr.Point(x + 30 * scale, y - 30 * scale),
                      gr.Point(x + 34 * scale, y - 44 * scale))
    b1.setFill('turquoise')

    b2 = gr.Rectangle(gr.Point(x + 34 * scale, y - 30 * scale),
                      gr.Point(x + 38 * scale, y - 50 * scale))
    b2.setFill('red')

    b3 = gr.Rectangle(gr.Point(x + 38 * scale, y - 30 * scale),
                      gr.Point(x + 42 * scale, y - 40 * scale))
    b3.setFill('green')

    b4 = gr.Rectangle(gr.Point(x + 42 * scale, y - 30 * scale),
                      gr.Point(x + 46 * scale, y - 38 * scale))
    b4.setFill('orange')

    # put all of these objects into a list
    whale = [whalebody, whalemouth, c1, b1, b2, b3, b4]

    # return the list
    return whale
Example #13
0
def init_birds(x, y, scale):
    bird1list = [
        g.Point(x + 10 * scale, y + 10 * scale),  # bird1 point list
        g.Point(x + 20 * scale, y + 10 * scale),
        g.Point(x + 20 * scale, y + 15 * scale),
        g.Point(x + 30 * scale, y + 15 * scale),
        g.Point(x + 40 * scale, y + 5 * scale),
        g.Point(x + 40 * scale, y + 15 * scale),
        g.Point(x + 60 * scale, y + 15 * scale),
        g.Point(x + 60 * scale, y + 20 * scale),
        g.Point(x + 40 * scale, y + 20 * scale),
        g.Point(x + 40 * scale, y + 30 * scale),
        g.Point(x + 30 * scale, y + 20 * scale),
        g.Point(x + 20 * scale, y + 20 * scale),
        g.Point(x + 20 * scale, y + 25 * scale),
        g.Point(x + 10 * scale, y + 25 * scale),
        g.Point(x + 0 * scale, y + 17.5 * scale)
    ]
    bird1 = g.Polygon(bird1list)  #bird1 drawing
    bird1.setFill("blue")
    bird1.setOutline("red")
    bird1.setWidth(1)

    bird2list = [
        g.Point(x + 60 * scale, y + 30 * scale),  # bird2 point list
        g.Point(x + 70 * scale, y + 30 * scale),
        g.Point(x + 70 * scale, y + 35 * scale),
        g.Point(x + 80 * scale, y + 35 * scale),
        g.Point(x + 90 * scale, y + 25 * scale),
        g.Point(x + 90 * scale, y + 35 * scale),
        g.Point(x + 110 * scale, y + 35 * scale),
        g.Point(x + 110 * scale, y + 40 * scale),
        g.Point(x + 90 * scale, y + 40 * scale),
        g.Point(x + 90 * scale, y + 50 * scale),
        g.Point(x + 80 * scale, y + 40 * scale),
        g.Point(x + 70 * scale, y + 40 * scale),
        g.Point(x + 70 * scale, y + 45 * scale),
        g.Point(x + 60 * scale, y + 45 * scale),
        g.Point(x + 50 * scale, y + 37.5 * scale)
    ]
    bird2 = g.Polygon(bird2list)  #bird2 drawing
    bird2.setFill("pink")
    bird2.setOutline("red")
    bird2.setWidth(1)

    bird3list = [
        g.Point(x - 10 * scale, y + 10 * scale),  # bird3 point list
        g.Point(x - 20 * scale, y + 10 * scale),
        g.Point(x - 20 * scale, y + 15 * scale),
        g.Point(x - 30 * scale, y + 15 * scale),
        g.Point(x - 40 * scale, y + 5 * scale),
        g.Point(x - 40 * scale, y + 15 * scale),
        g.Point(x - 60 * scale, y + 15 * scale),
        g.Point(x - 60 * scale, y + 20 * scale),
        g.Point(x - 40 * scale, y + 20 * scale),
        g.Point(x - 40 * scale, y + 30 * scale),
        g.Point(x - 30 * scale, y + 20 * scale),
        g.Point(x - 20 * scale, y + 20 * scale),
        g.Point(x - 20 * scale, y + 25 * scale),
        g.Point(x - 10 * scale, y + 25 * scale),
        g.Point(x + 0 * scale, y + 17.5 * scale)
    ]
    bird3 = g.Polygon(bird3list)  #bird3 drawing
    bird3.setFill("blue")
    bird3.setOutline("red")
    bird3.setWidth(1)

    bird4list = [
        g.Point(x + 40 * scale, y + 30 * scale),  # bird4 point list
        g.Point(x + 30 * scale, y + 30 * scale),
        g.Point(x + 30 * scale, y + 35 * scale),
        g.Point(x + 20 * scale, y + 35 * scale),
        g.Point(x + 10 * scale, y + 25 * scale),
        g.Point(x + 10 * scale, y + 35 * scale),
        g.Point(x - 10 * scale, y + 35 * scale),
        g.Point(x - 10 * scale, y + 40 * scale),
        g.Point(x + 10 * scale, y + 40 * scale),
        g.Point(x + 10 * scale, y + 50 * scale),
        g.Point(x + 20 * scale, y + 40 * scale),
        g.Point(x + 30 * scale, y + 40 * scale),
        g.Point(x + 30 * scale, y + 45 * scale),
        g.Point(x + 40 * scale, y + 45 * scale),
        g.Point(x + 50 * scale, y + 37.5 * scale)
    ]
    bird4 = g.Polygon(bird4list)  #bird4 drawing
    bird4.setFill("pink")
    bird4.setOutline("red")
    bird4.setWidth(1)

    test4 = [bird1, bird2, bird3, bird4]
    return test4
Example #14
0
def background_init(x,y,scale):
	'''
	  Creates the list of objects needed to draw the background
	  scene at position (x,y) with the given scale.
	'''
	shapes = []
	
	#sky IDX 0
	r = gr.Rectangle(gr.Point(x,y),gr.Point(x+scale*400,y+scale*400))
	r.setFill(gr.color_rgb(107,142,35))
	shapes.append(r)
	
	#ground IDX 1
	r = gr.Rectangle(gr.Point(x,y+300*scale),gr.Point(x+scale*400,y-scale*400))
	r.setFill(gr.color_rgb(0,191,255))
	shapes.append(r)
	
	#sun IDX 2
	c = gr.Circle(gr.Point(x+325*scale,y+75*scale),20*scale)
	c.setFill(gr.color_rgb(255,255,0))
	shapes.append(c)
	
	#yellow rays IDX 3-6
	t = gr.Polygon(gr.Point(x+325*scale,y+40*scale),gr.Point(x+327*scale,y+50*scale),
		gr.Point(x+323*scale,y+50*scale))
	t.setFill(gr.color_rgb(255,255,0))
	shapes.append(t)
	
	t = gr.Polygon(gr.Point(x+360*scale,y+75*scale),gr.Point(x+350*scale,y+73*scale),
		gr.Point(x+350*scale,y+77*scale))
	t.setFill(gr.color_rgb(255,255,0))
	shapes.append(t)
	
	t = gr.Polygon(gr.Point(x+325*scale,y+110*scale),gr.Point(x+327*scale,y+100*scale),
		gr.Point(x+323*scale,y+100*scale))
	t.setFill(gr.color_rgb(255,255,0))
	shapes.append(t)
	
	t = gr.Polygon(gr.Point(x+290*scale,y+75*scale),gr.Point(x+300*scale,y+73*scale),
		gr.Point(x+300*scale,y+77*scale))
	t.setFill(gr.color_rgb(255,255,0))
	shapes.append(t)
	
	#orange rays IDX 7-10
	t = gr.Polygon(gr.Point(x+352*scale,y+50*scale),gr.Point(x+341*scale,y+57*scale),
		gr.Point(x+344*scale,y+60*scale))
	t.setFill(gr.color_rgb(255,150,0))
	shapes.append(t)
	
	t = gr.Polygon(gr.Point(x+352*scale,y+100*scale),gr.Point(x+341*scale,y+93*scale),
		gr.Point(x+344*scale,y+90*scale))
	t.setFill(gr.color_rgb(255,150,0))
	shapes.append(t)
	
	t = gr.Polygon(gr.Point(x+298*scale,y+100*scale),gr.Point(x+309*scale,y+93*scale),
		gr.Point(x+306*scale,y+90*scale))
	t.setFill(gr.color_rgb(255,150,0))
	shapes.append(t)
	
	t = gr.Polygon(gr.Point(x+298*scale,y+50*scale),gr.Point(x+309*scale,y+57*scale),
		gr.Point(x+306*scale,y+60*scale))
	t.setFill(gr.color_rgb(255,150,0))
	shapes.append(t)
	
	return shapes
Example #15
0
def dog_init(x,y,scale):
	'''
	  Creates the list of objects needed to draw a dog
	  at position (x,y) with the given scale.
	'''
	shapes = []
	
	#body IDX 0
	o = gr.Oval(gr.Point(x,y),gr.Point(x+200*scale,y-75*scale))
	o.setFill(gr.color_rgb(139,69,19))
	shapes.append(o)
	
	#tail IDX 1
	t = gr.Polygon(gr.Point(x,y-40*scale),gr.Point(x+5*scale,y-45*scale),
		gr.Point(x-50*scale,y-100*scale))
	t.setFill(gr.color_rgb(139,69,19))
	shapes.append(t)
	
	#legs IDX 2-5
	o = gr.Oval(gr.Point(x+20*scale,y-20*scale),gr.Point(x+30*scale,y+60*scale))
	o.setFill(gr.color_rgb(139,69,19))
	shapes.append(o)
	
	o = gr.Oval(gr.Point(x+27*scale,y-20*scale),gr.Point(x+37*scale,y+60*scale))
	o.setFill(gr.color_rgb(139,69,19))
	shapes.append(o)
	
	o = gr.Oval(gr.Point(x+153*scale,y-20*scale),gr.Point(x+163*scale,y+60*scale))
	o.setFill(gr.color_rgb(139,69,19))
	shapes.append(o)
	
	o = gr.Oval(gr.Point(x+170*scale,y-20*scale),gr.Point(x+180*scale,y+60*scale))
	o.setFill(gr.color_rgb(139,69,19))
	shapes.append(o)
	
	#head IDX 6
	c = gr.Circle(gr.Point(x+210*scale,y-85*scale),40*scale)
	c.setFill(gr.color_rgb(139,69,19))
	shapes.append(c)
	
	#ear IDX 7
	o = gr.Oval(gr.Point(x+180*scale,y-120*scale),gr.Point(x+200*scale,y-60*scale))
	o.setFill(gr.color_rgb(160,82,45))
	shapes.append(o)
		
	#eye IDX 8
	c = gr.Circle(gr.Point(x+220*scale,y-110*scale),8*scale)
	c.setFill(gr.color_rgb(30,144,255))
	shapes.append(c)
		
	#nose IDX 9
	c = gr.Circle(gr.Point(x+250*scale,y-90*scale),10*scale)
	c.setFill(gr.color_rgb(199,21,133))
	shapes.append(c)
	
	#tongue IDX 10
	o = gr.Oval(gr.Point(x+245*scale,y-75*scale),gr.Point(x+280*scale,y-80*scale))
	o.setFill(gr.color_rgb(219,112,147))
	shapes.append(o)
	
	#neck
	neck = gr.Polygon(gr.Point(x+200*scale,y-46*scale),gr.Point(x+190*scale,y-40*scale),
		gr.Point(x+230*scale,y+27*scale),gr.Point(x+237*scale,y+20))
	neck.setFill(gr.color_rgb(139,69,19))
	shapes.append(neck)
	
	return shapes
Example #16
0
def witch_init(x, y, scale):
    '''Creates and returns a list of graphics objects to make up a witch'''
    shapes = []

    #hat
    p = gr.Polygon(gr.Point(x, y - scale * 120),
                   gr.Point(x + scale * 25, y - scale * 80),
                   gr.Point(x - scale * 35, y - scale * 80),
                   gr.Point(x - scale * 35, y - scale * 70),
                   gr.Point(x + scale * 35, y - scale * 70),
                   gr.Point(x + scale * 35, y - scale * 80),
                   gr.Point(x - scale * 25, y - scale * 80))
    p.setFill(gr.color_rgb(30, 30, 30))
    shapes.append(p)

    #hatribbon
    p = gr.Polygon(gr.Point(x - scale * 25, y - scale * 80),
                   gr.Point(x - scale * 23, y - scale * 85),
                   gr.Point(x + scale * 23, y - scale * 85),
                   gr.Point(x + scale * 25, y - scale * 80))
    p.setFill(gr.color_rgb(128, 0, 128))
    shapes.append(p)

    #witch's hair
    r = gr.Rectangle(gr.Point(x - scale * 15, y - scale * 70),
                     gr.Point(x - scale * 25, y - scale * 30))
    r.setFill(gr.color_rgb(0, 0, 0))
    shapes.append(r)

    r = gr.Rectangle(gr.Point(x + scale * 25, y - scale * 70),
                     gr.Point(x + scale * 15, y - scale * 30))
    r.setFill(gr.color_rgb(0, 0, 0))
    shapes.append(r)

    r = gr.Rectangle(gr.Point(x - scale * 15, y - scale * 70),
                     gr.Point(x + scale * 15, y - scale * 60))
    r.setFill(gr.color_rgb(0, 0, 0))
    shapes.append(r)

    #witch's face
    r = gr.Rectangle(gr.Point(x - scale * 15, y - scale * 60),
                     gr.Point(x + scale * 15, y - scale * 40))
    r.setFill(gr.color_rgb(0, 205, 0))
    shapes.append(r)
    c = gr.Circle(gr.Point(x - scale * 10, y - scale * 50), 1)
    c.setFill(gr.color_rgb(0, 0, 0))
    shapes.append(c)
    c = gr.Circle(gr.Point(x + scale * 10, y - scale * 50), 1)
    c.setFill(gr.color_rgb(0, 0, 0))
    shapes.append(c)
    p = gr.Polygon(gr.Point(x, y - scale * 43),
                   gr.Point(x - scale * 3, y - scale * 47),
                   gr.Point(x + scale * 3, y - scale * 47))
    p.setFill(gr.color_rgb(255, 182, 193))
    shapes.append(p)

    #witch body
    p = gr.Polygon(gr.Point(x, y - scale * 40),
                   gr.Point(x - scale * 15, y + scale * 10),
                   gr.Point(x + scale * 15, y + scale * 10))
    p.setFill(gr.color_rgb(30, 30, 30))
    shapes.append(p)
    p = gr.Polygon(gr.Point(x, y - scale * 40),
                   gr.Point(x - scale * 15, y + scale * 10),
                   gr.Point(x - scale * 25, y + scale * 10))
    p.setFill(gr.color_rgb(128, 0, 128))
    shapes.append(p)
    p = gr.Polygon(gr.Point(x, y - scale * 40),
                   gr.Point(x + scale * 15, y + scale * 10),
                   gr.Point(x + scale * 25, y + scale * 10))
    p.setFill(gr.color_rgb(128, 0, 128))
    shapes.append(p)

    return shapes
Example #17
0
def init_mario(x, y, scale):

    # Overalls as a polygon
    points = [
        gr.Point(x + 0 * scale, y - 0 * scale),
        gr.Point(x + 0 * scale, y - 120 * scale),
        gr.Point(x + 10 * scale, y - 120 * scale),
        gr.Point(x + 10 * scale, y - 170 * scale),
        gr.Point(x + 20 * scale, y - 170 * scale),
        gr.Point(x + 20 * scale, y - 120 * scale),
        gr.Point(x + 40 * scale, y - 120 * scale),
        gr.Point(x + 40 * scale, y - 170 * scale),
        gr.Point(x + 50 * scale, y - 170 * scale),
        gr.Point(x + 50 * scale, y - 120 * scale),
        gr.Point(x + 60 * scale, y - 120 * scale),
        gr.Point(x + 60 * scale, y - 0 * scale),
        gr.Point(x + 40 * scale, y - 0 * scale),
        gr.Point(x + 40 * scale, y - 60 * scale),
        gr.Point(x + 20 * scale, y - 60 * scale),
        gr.Point(x + 20 * scale, y - 0 * scale)
    ]
    overalls = gr.Polygon(points)
    overalls.setFill('steel blue')

    # red shirt
    shirt = gr.Polygon(red_shirt_points(x, y, scale, False))
    shirt.setFill('red')

    head = gr.Circle(gr.Point(x + 30 * scale, y - 195 * scale), 25 * scale)
    head.setFill('salmon')

    points = [
        gr.Point(x - 15 * scale, y - 210 * scale),
        gr.Point(x - 15 * scale, y - 215 * scale),
        gr.Point(x + 5 * scale, y - 215 * scale),
        gr.Point(x + 10 * scale, y - 235 * scale),
        gr.Point(x + 50 * scale, y - 235 * scale),
        gr.Point(x + 60 * scale, y - 210 * scale)
    ]
    hat = gr.Polygon(points)
    hat.setFill('red')

    points = [
        gr.Point(x + 5 * scale, y - 175 * scale),
        gr.Point(x + 10 * scale, y - 180 * scale),
        gr.Point(x + 20 * scale, y - 182 * scale),
        gr.Point(x + 40 * scale, y - 182 * scale),
        gr.Point(x + 50 * scale, y - 180 * scale),
        gr.Point(x + 55 * scale, y - 175 * scale),
        gr.Point(x + 55 * scale, y - 178 * scale),
        gr.Point(x + 50 * scale, y - 183 * scale),
        gr.Point(x + 40 * scale, y - 185 * scale),
        gr.Point(x + 20 * scale, y - 185 * scale),
        gr.Point(x + 10 * scale, y - 183 * scale),
        gr.Point(x + 5 * scale, y - 178 * scale)
    ]
    moustache = gr.Polygon(points)
    moustache.setFill('black')

    lefteye = gr.Circle(gr.Point(x + 22 * scale, y - 200 * scale), 3)
    righteye = gr.Circle(gr.Point(x + 38 * scale, y - 200 * scale), 3)
    lefteye.setFill('black')
    righteye.setFill('black')

    mario = [shirt, overalls, head, hat, moustache, lefteye, righteye]

    return mario