Discussion:
Pygame, how to show window without loop? no loop=popupand close...
defn noob
2008-06-28 02:58:40 UTC
Permalink
right. im an idiot anyway. i can just draw the lines before entering
the loop, problem solved...
defn noob
2008-06-28 02:17:35 UTC
Permalink
Im using PyGame to draw images of graphs and trees. Howver right now i
am looping using:

while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()

screen.fill(screencolor)

pygame.draw.circle(screen, linecolor, (500, 20), 12, 0)

draw((500, 20), 3)

pygame.display.flip()


if i do

screen.fill(screencolor)

pygame.draw.circle(screen, linecolor, (500, 20), 12, 0)

draw((500, 20), 3)

pygame.display.flip()

it just pops up and closes. how can i make it stay until i close it
without using a loop?
Nick Dumas
2008-06-28 02:35:48 UTC
Permalink
Post by defn noob
Im using PyGame to draw images of graphs and trees. Howver right now i
if event.type == pygame.QUIT: sys.exit()
screen.fill(screencolor)
pygame.draw.circle(screen, linecolor, (500, 20), 12, 0)
draw((500, 20), 3)
pygame.display.flip()
if i do
screen.fill(screencolor)
pygame.draw.circle(screen, linecolor, (500, 20), 12, 0)
draw((500, 20), 3)
pygame.display.flip()
it just pops up and closes. how can i make it stay until i close it
without using a loop?
You need the loop, because without it, the script would reach the
end-of-file and stop executing.
Carl Banks
2008-06-28 23:09:40 UTC
Permalink
Post by defn noob
right. im an idiot anyway. i can just draw the lines before entering
the loop, problem solved...
Do not do that; it'll create a busy loop and use 100% of CPU. Use
pygame.event.wait() instead. It waits for an event to occur, without
using CPU cycles.
Carl Banks
pygame.init()
screen = pygame.display.set_mode(size)
if event.type == pygame.QUIT: sys.exit()
screen.fill(screencolor)
draw((500, 20), 5)
pygame.display.flip()
pygame.event.wait()
running that i cant close the program... what must i do? create an
event at mouse click?
A. pygame.event.wait is used in lieu of pygame.event.get

B. RTFM. I suggested pygame.event.wait with the expectation that you
would refer to the pygame documentation to learn how to use it
yourself.


Carl Banks
Carl Banks
2008-06-28 06:32:00 UTC
Permalink
Post by defn noob
right. im an idiot anyway. i can just draw the lines before entering
the loop, problem solved...
Do not do that; it'll create a busy loop and use 100% of CPU. Use
pygame.event.wait() instead. It waits for an event to occur, without
using CPU cycles.


Carl Banks
defn noob
2008-06-28 22:49:20 UTC
Permalink
Post by defn noob
right. im an idiot anyway. i can just draw the lines before entering
the loop, problem solved...
Do not do that; it'll create a busy loop and use 100% of CPU. Use
pygame.event.wait() instead. It waits for an event to occur, without
using CPU cycles.
Carl Banks
pygame.init()
screen = pygame.display.set_mode(size)

while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
screen.fill(screencolor)
draw((500, 20), 5)
pygame.display.flip()
pygame.event.wait()


running that i cant close the program... what must i do? create an
event at mouse click?

Loading...