I’ve made a pathfinding visualizer using python and pygame. As of now, it can simulate only one algorithm at a time. I want to spawn multiple windows, each simulating different algorithm, side by side so that algorithms can be analyzed against each other. I have a function client.run() that draws the GUI. I’m trying to spawn multiple instances like this:
p=threading.Thread(target = client.run)
q=threading.Thread(target = client.run)
p.start()
q.start()
But by doing so my program hangs! Is there any way to rectify this problem, or any alternative way of running multiple instances/windows?
Pygame is built in a way to have a single window by process, you can’t avoid that. The pygame.display module sets you a “display” and that is what you get.
You are in good look, as you have designed you software to work with threads, and have each thread control a display.. Just change the “threading” Python module for the multiprocessing, and use multiprocessing.Process instead of threading.Threads — as long as you initialize pygame and its display from within each subprocess you should be ok.
I just teste here and teh example bellow works fine: