Changeset 4:e8ddbc95cbf3


Ignore:
Timestamp:
Aug 30, 2009, 12:48:02 PM (11 years ago)
Author:
Jeremy Thurgood <firxen@…>
Branch:
default
Convert:
svn:b4e93282-eac8-4b8b-b765-0f5d36de2b68@5
Message:

Silly (and broken) first stab at menu thing.

Location:
gamelib
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • gamelib/main.py

    r2 r4  
    77'''
    88
    9 import data
     9SCREEN = (800, 600)
     10
     11import time
     12import random
     13
     14import pygame
     15from pgu import gui
     16from pygame.locals import *
     17
     18from mainmenu import MainMenu
     19
     20W,H = 640,480
     21W2,H2 = 320,240
     22
     23##Using App instead of Desktop removes the GUI background.  Note the call to app.init()
     24##::
     25
     26form = gui.Form()
     27
     28app = gui.App()
     29main_menu = MainMenu()
     30
     31c = gui.Container(align=-1,valign=-1)
     32c.add(main_menu,0,0)
     33
     34app.init(c)
     35##
     36
     37dist = 8192
     38span = 10
     39stars = []
     40def reset():
     41    global stars
     42    stars = []
     43    for i in range(0,form['quantity'].value):
     44        stars.append([random.randrange(-W*span,W*span),
     45                      random.randrange(-H*span,H*span),
     46                      random.randrange(1,dist)])
     47       
     48
     49def render(dt):
     50    speed = form['speed'].value*10
     51    size = form['size'].value
     52    color = form['color'].value
     53    warp = form['warp'].value
     54
     55    colors = []
     56    for i in range(256,0,-1):
     57        colors.append((color[0]*i/256,color[1]*i/256,color[2]*i/256))
     58       
     59    n = 0
     60    for x,y,z in stars:
     61        if warp:
     62            z1 = max(1,z + speed*2)
     63            x1 = x*256/z1
     64            y1 = y*256/z1
     65            xx1,yy1 = x1+W2,y1+H2
     66   
     67        x = x*256/z
     68        y = y*256/z
     69        xx,yy = x+W2,y+H2
     70        c = min(255,z * 255 / dist)
     71        col = colors[int(c)]
     72
     73        if warp:
     74            pygame.draw.line(screen,col,
     75                             (int(xx1),int(yy1)),
     76                             (int(xx),int(yy)),size)
     77       
     78        pygame.draw.circle(screen,col,(int(xx),int(yy)),size)
     79       
     80        ch = 0
     81        z -= speed*dt
     82        if z <= 0:
     83            ch = 1
     84            z += dist
     85        if z > dist:
     86            ch = 1
     87            z -= dist
     88        if ch:
     89            stars[n][0] = random.randrange(-W*span,W*span)
     90            stars[n][1] = random.randrange(-H*span,H*span)
     91        stars[n][2] = z
     92       
     93        n += 1
     94       
     95screen = pygame.display.set_mode(SCREEN,SWSURFACE)
     96
     97##You can include your own run loop.
     98##::
     99
     100def gameloop(screen):
     101    reset()
     102    clock = pygame.time.Clock()
     103    done = False
     104    while not done:
     105        for e in pygame.event.get():
     106            if e.type is QUIT:
     107                done = True
     108            elif e.type is KEYDOWN and e.key == K_ESCAPE:
     109                done = True
     110            else:
     111                app.event(e)
     112
     113        # Clear the screen and render the stars
     114        dt = clock.tick()/1000.0
     115        screen.fill((0,0,0))
     116        render(dt)
     117        app.paint(screen)
     118        pygame.display.flip()
     119        pygame.time.wait(10)
     120
    10121
    11122def main():
    12     print "Hello from your game's main()"
    13     print data.load('sample.txt').read()
     123    gameloop(screen)
Note: See TracChangeset for help on using the changeset viewer.