convert global statements into main() function
authorTJ <git@iam.tj>
Sun, 10 Nov 2013 00:05:58 +0000 (00:05 +0000)
committerTJ <git@iam.tj>
Sun, 10 Nov 2013 00:05:58 +0000 (00:05 +0000)
pygame-scroller.py

index 78c7975..f862e87 100755 (executable)
@@ -114,103 +114,108 @@ class SeamlessBackground:
   else:
    print("No image to draw")
 
-myGame = Config(1500, 1000)
-flags = pygame.OPENGL & pygame.DOUBLEBUF
-depth = 0
-
-# main loop sleep (100 milliseconds)
-delay = 0.01
-
-pygame.display.set_caption("TJ's platform scroller")
-
-# background colour
-stepping = 8 # pixels scrolled each flip
-background_colour = (20, 20, 64)
-screen = pygame.display.set_mode(myGame.resolution, flags, depth)
-resolution = screen.get_size()
-screen.fill(background_colour)
-
-# background image
-background_image = SeamlessBackground(os.path.join("resources", "binary.jpg"))
-background_image.draw(screen, -1, 0) # -1 flags initial background drawing
-pygame.display.flip()
-
-# scrolling object
-blip = pygame.Surface((abs(stepping), abs(stepping)), pygame.HWSURFACE)
-blip_colour = (128, 128, 128)
-blip.fill(blip_colour)
-
-# starting position
-y = resolution[1] / 2
-
-if myGame.config['sound'] == 1:
- myGame.soundtrack.play(os.path.join("resources","Music","Rolemusic_-_Savage_Steel_Fun_Club.mp3"), loops=-1)
-
-auto_scroll = False
-movement = 0
-x_pos = 0
-myGame.play = True
-while (myGame.play):
- # update game state
- if x_pos + movement >= 0:
-  x_pos += movement
- else:
-  movement = 0
-# print(movement)
-
- # change colour randomly
- d_red = random.randrange(-1,2) *8
- d_green = random.randrange(-1,2) *8
- d_blue = random.randrange(-1,2) *8
- # build a new tuple, ensuring all values are valid
- blip_colour = tuple( b+d if b+d < 256 and b+d >=0 else b for b, d in zip(blip_colour, (d_red, d_green, d_blue)) )
- blip.fill(blip_colour)
 
- # change position up or down randomly by one step
- dy = random.randrange(-1,2) * abs(stepping)
- if((y + dy) < resolution[1] and (y + dy) >= 0):
-  # screen.fill(background_colour, pygame.Rect(resolution[0] - abs(stepping), y, abs(stepping), abs(stepping) ))
-  y += dy
+def main():
+ myGame = Config(1500, 1000)
+ flags = pygame.OPENGL & pygame.DOUBLEBUF
+ depth = 0
+
+ # main loop sleep (100 milliseconds)
+ delay = 0.01
+
+ pygame.display.set_caption("TJ's platform scroller")
 
- # debug info
- #if myGame.debug:
-  #print(y, blip_colour)
+ # background colour
+ stepping = 8 # pixels scrolled each flip
+ background_colour = (20, 20, 64)
+ screen = pygame.display.set_mode(myGame.resolution, flags, depth)
+ resolution = screen.get_size()
+ screen.fill(background_colour)
 
- # redraw the display
- screen.scroll(-movement, 0)
- background_image.draw(screen, x_pos, movement)
- screen.blit(blip, (resolution[0] - abs(stepping), y))
+ # background image
+ background_image = SeamlessBackground(os.path.join("resources", "binary.jpg"))
+ background_image.draw(screen, -1, 0) # -1 flags initial background drawing
  pygame.display.flip()
- # manage the frame-rate
- time.sleep(delay)
-
- # process events
- for event in pygame.event.get():
-  if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.key == pygame.K_q):
-   myGame.play = False
-  if event.type == pygame.KEYDOWN:
-   k = event.key
-   if k == pygame.K_p:
-    time.sleep(10)
- if not auto_scroll:
+
+ # scrolling object
+ blip = pygame.Surface((abs(stepping), abs(stepping)), pygame.HWSURFACE)
+ blip_colour = (128, 128, 128)
+ blip.fill(blip_colour)
+
+ # starting position
+ y = resolution[1] / 2
+
+ if myGame.config['sound'] == 1:
+  myGame.soundtrack.play(os.path.join("resources","Music","Rolemusic_-_Savage_Steel_Fun_Club.mp3"), loops=-1)
+
+ auto_scroll = False
+ movement = 0
+ x_pos = 0
+ myGame.play = True
+ while (myGame.play):
+  # update game state
+  if x_pos + movement >= 0:
+   x_pos += movement
+  else:
    movement = 0
- keys_pressed = pygame.key.get_pressed()
- if sum(keys_pressed):
-  if keys_pressed[pygame.K_6]:
-   # volume down
-   myGame.soundtrack.down()
-  elif keys_pressed[pygame.K_7]:
-   # volume up
-   myGame.soundtrack.up()
-  elif keys_pressed[pygame.K_d]:
-   movement = stepping
-  elif keys_pressed[pygame.K_a]:
-   movement = -stepping
-  elif keys_pressed[pygame.K_l]:
-   auto_scroll = True if auto_scroll == False else False
-
-myGame.soundtrack.fadeout(5000)
-time.sleep(5)
-pygame.display.quit()
-exit(0)
+ # print(movement)
+
+  # change colour randomly
+  d_red = random.randrange(-1,2) *8
+  d_green = random.randrange(-1,2) *8
+  d_blue = random.randrange(-1,2) *8
+  # build a new tuple, ensuring all values are valid
+  blip_colour = tuple( b+d if b+d < 256 and b+d >=0 else b for b, d in zip(blip_colour, (d_red, d_green, d_blue)) )
+  blip.fill(blip_colour)
+
+  # change position up or down randomly by one step
+  dy = random.randrange(-1,2) * abs(stepping)
+  if((y + dy) < resolution[1] and (y + dy) >= 0):
+   # screen.fill(background_colour, pygame.Rect(resolution[0] - abs(stepping), y, abs(stepping), abs(stepping) ))
+   y += dy
+
+  # debug info
+  #if myGame.debug:
+   #print(y, blip_colour)
+
+  # redraw the display
+  screen.scroll(-movement, 0)
+  background_image.draw(screen, x_pos, movement)
+  screen.blit(blip, (resolution[0] - abs(stepping), y))
+  pygame.display.flip()
+  
+  # manage the frame-rate
+  time.sleep(delay)
+
+  # process events
+  for event in pygame.event.get():
+   if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.key == pygame.K_q):
+    myGame.play = False
+   if event.type == pygame.KEYDOWN:
+    k = event.key
+    if k == pygame.K_p:
+     time.sleep(10)
+  if not auto_scroll:
+    movement = 0
+  keys_pressed = pygame.key.get_pressed()
+  if sum(keys_pressed):
+   if keys_pressed[pygame.K_6]:
+    # volume down
+    myGame.soundtrack.down()
+   elif keys_pressed[pygame.K_7]:
+    # volume up
+    myGame.soundtrack.up()
+   elif keys_pressed[pygame.K_d]:
+    movement = stepping
+   elif keys_pressed[pygame.K_a]:
+    movement = -stepping
+   elif keys_pressed[pygame.K_l]:
+    auto_scroll = True if auto_scroll == False else False
+
+ myGame.soundtrack.fadeout(5000)
+ time.sleep(5)
+ pygame.display.quit()
+ exit(0)
+
+if __name__ == '__main__':
+ main()