Recently I started using my first attempt at Python multithreading. The purpose of the code is to run multiple WHILE loops at the same time, one of which searches for the change of a variable to TRUE caused by input picked up by the other. However, when i ran the program listed below, it gave me an error:
import thread, pygame, sys
def backMain(threadName, fps):
##Begins processing of essential info
pygame.init()
DISPLAY = pygame.display.set_mode((1023, 647))
WHITE = (255, 255, 255)
DISPLAY.fill(WHITE)
clock = pygame.time.Clock()
active = True
started = False
mainscreendisplayimg = pygmae.image.load('mainScreen.png')
def mainscreen(x, y):
DISPLAY.blit(mainscreendisplayimg, (x,y))
mainscreen(1, 1)
while active:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_p:
if started == False:
started = True
print 'Done'
pygame.display.update()
clock.tick(fps)
def forMain(threadname, fps):
active = true
while active:
if started == True:
print 'Starting Main Program'
clock.tick(fps)
try:
thread.start_new_thread( backMain, ("backwardMain", 15))
thread.start_new_thread( forwardMain, ("forwardMain", 15))
except:
print "Unable to start threads"
This should display 'mainScreen.png' on the screen with a white background, and when I press p, should start printing 'Good'. When I run it, however, the Pygame screen will remain completely black and I will get an error stating:
Unhandled exception in thread started by <function forwardMain at 0x02D38470>
Any help would be appreciated