Simple python question

  • Python
  • Thread starter brushman
  • Start date
  • #1
114
1

Main Question or Discussion Point

Basically, I have a function that draws a house. You enter (x, y) coordinates to pick where the house is drawn. However, it only lets me draw one house. Why can't I draw more then one house by calling the draw_house(x, y) function multiple times? Here's the code:

Code:
from gasp import *          # import everything from the gasp library

begin_graphics()            # open the graphics canvas


def draw_house(x, y):
    Box((x, y), 100, 100)         # the house
    Box((x+35, y), 30, 50)           # the door
    Box((x+20, y+60), 20, 20)           # the left window
    Box((x+60, y+60), 20, 20)           # the right window
    Line((x, y+100), (x+50, y+140))      # the left roof
    Line((x+50, y+140), (x+100, y+100))     # the right roof

    update_when('key_pressed')  # keep the canvas open until a key is pressed

draw_house(90, 90)
draw_house(200, 200)

end_graphics()              # close the canvas
In the code above, is draws the first house at (90, 90), but why doesn't it draw the second house?
 

Answers and Replies

  • #2
33,521
5,199
Caveat emptor: I don't know anything about python, so I might be way off in left field here.

The code starts off by the call to begin_graphics(), which opens the graphics canvas. Then there is the call to draw_house(90, 90), which causes the body of the draw_house function to execute, drawing a house whose opposite corners are at (90, 90) and (190, 190).

The last line of code in the draw_house function calls update_when, which, when a key is pressed, closes the graphics canvas (which I infer from the comment), so the call to draw_house(200, 200) fails, probably because the graphics canvas is closed.

That's what I think is going on.
 
  • #3
114
1
Thanks, that was it.
 

Related Threads on Simple python question

  • Last Post
Replies
6
Views
1K
  • Last Post
Replies
4
Views
2K
  • Last Post
Replies
2
Views
2K
Replies
3
Views
2K
  • Last Post
Replies
5
Views
6K
  • Last Post
Replies
6
Views
1K
Replies
6
Views
870
Replies
2
Views
822
Replies
4
Views
3K
Replies
8
Views
790
Top