Pygame?
David Culp
New Member Posts: 12 ✭
I got my Up Board up and running with no problems - wow, this thing is FAST. I own a very large number of other Linux based SBC's and this one is amazing so far.
I installed the latest ubilinux image and I am having some problems with Pygame. I have run apt-get update and apt-get dist-upgrade. I installed pygame with "sudo apt-get install python-pygame". However, when running a simple script that plots Sierpinski's triangle the screen simply goes blank. I know this script works as I have run it on a lot of different computers. In fact, it is one of the scripts I use to get my students interested in Python programming.
The script appears below. Any help would be appreciated.
I installed the latest ubilinux image and I am having some problems with Pygame. I have run apt-get update and apt-get dist-upgrade. I installed pygame with "sudo apt-get install python-pygame". However, when running a simple script that plots Sierpinski's triangle the screen simply goes blank. I know this script works as I have run it on a lot of different computers. In fact, it is one of the scripts I use to get my students interested in Python programming.
The script appears below. Any help would be appreciated.
#Simple Python 2 script by David Culp (dwculp@gmail.com) that uses a chaos algorithm to plot Sierpinski's triangle
import pygame, random, sys
#change these to suit your screen
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
num_iterations = int(raw_input("How many iterations do you want? "))
pygame.init()
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
screen.fill( (0,0,0) )
ax = 0
ay = SCREEN_HEIGHT
bx = SCREEN_WIDTH
by = SCREEN_HEIGHT
cx = SCREEN_WIDTH/2
cy = 0
px = ax
py = ay
print "Calculating, please wait......\n\n"
for n in range(1, num_iterations+1):
vx = random.randrange(0,3)
if vx == 0:
px = (px + ax) / 2
py = (py + ay) / 2
red = 255
green = 0
blue = 0
elif vx == 1:
px = (px + bx) / 2
py = (py + by) / 2
red = 0
green = 0
blue = 255
else:
px = (px + cx) / 2
py = (py + cy) / 2
red = 0
green = 255
blue = 0
screen.set_at( (px, py), (red,green,blue) )
if n%10000 == 0: sys.stdout.write('.')
if n%100000 == 0: print '|'+str(n)+'\n'
pygame.display.update()
print "\nDone!"
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
pygame.quit()
sys.exit()
Comments
-
Hi daveculp,
Thanks for you feedback about your experience with the UP Board.
About the pygame, could you try to change the resolution to 1920x1080 on the following section?
#change these to suit your screen
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600 -
It doesn't work, the screen still blanks. The actual problem is in the call to pygame.init() which doesn't set a screen resolution, it only initializes pygame.
I will see if I can compile pygame from source this weekend instead of installing it from the repo and see if that fixes it. -
I compiled Pygame from source and installed and I get the same thing - a black screen.
Anyone willing to give pygame a try? Install pygame with:sudo apt-get install python-pygame
Then fire up python and try the following at the python prompt:>>>import pygame >>>pygame.init()
See if the screen blanks. -
i get this.
:~$ python Python 2.7.9 (default, Mar 1 2015, 12:57:24) [GCC 4.9.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pygame >>> pygame.init() (6, 0) >>>
hope it helps -
Thanks. So no screen blanking then?
I actually get the same output except my screen goes blank and the monitor loses signal. I can then press ESC and blindly type "quit()" into the python command prompt. I get my monitor signal back and the exact same output you have. The return of "(6, 0)" indicates that pygame was able to init 6 subsystems and failed on 0. Although now that I think about it, I wonder if my output was (0,6).
My next steps to figure this out are:
1. Swap in a different monitor. I didn't think pygame.init() actually did anything at all with switching resolution and I know pygame works with some other Linux systems I have with this monitor but you never know.
2. Reinstall Ubilinux.
3. Try Ubuntu -
Without Blanking.
-
Solved.
It was the monitor. I swapped out with a newer model and it works great.