Beispiel #1
0
def test():
    '''test function for proof of concept of the new level system'''
    #new level system is generated from a file, while the game is running as opposed to all at once.
    def drawDiagnostic(surf,**kwargs):
        f = pygame.font.Font(None,20)
        h = 0
        for i in kwargs:
            outstr = '{0}:{1}'.format(i,kwargs[i])
            font_obj = f.render(outstr,False,Constants.WHITE)
            surf.blit(font_obj,(Constants.WIDTH-font_obj.get_width(),h*20))
            h += 1
    pygame.init()
    screen = pygame.display.set_mode((Constants.WIDTH,Constants.HEIGHT))
    player = Ghost((50,300))
    parts = pygame.sprite.Group()
    gens = pygame.sprite.Group()
    sparks = pygame.sprite.Group()
    num = 0
    off = .75
    timer = gameTime.Timer()
    fpsClock = pygame.time.Clock()
    events = []
    for i in xrange(100):
        for j in xrange(10):
            #pos = (i*30+200,j*30+100)
            pos = (Constants.WIDTH,j*30+100)
            out = '{0}:{1}:{2}'.format((i*30+200)/off,(num%4+6)*10+num%2,pos)
            events.append(out)
            num += 1
    timeline = gameTime.EventQueue()
    timeline.load(events)
    while True:
        screen.fill(Constants.BLACK)
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                SystemExit
            elif event.type == MOUSEBUTTONDOWN:
                angle = player.angle_to_point(event.pos)
                vel = [7*math.cos(angle),-7*math.sin(angle)]
                player.setVelocity(vel)
            elif event.type == Constants.ADD_PARTICLE:
                parts.add(event.particle(event.pos))
            elif event.type == Constants.ADD_GENERATOR:
                gens.add(event.particle(event.pos,flip=event.flip))
            elif event.type == Constants.ADD_SPARK:
                sparks.add(environment.Spark(event.pos,event.charge,event.color,event.vel))
        pygame.event.clear()
        if timeline._next:
            while timeline._next and timer.curr>timeline._next.time:
                pygame.event.post(timeline.pop())
        parts.update(off)
        parts.draw(screen)
        gens.update(off)
        gens.draw(screen)
        sparks.update(off)
        sparks.draw(screen)
        player.update(off)
        player.draw(screen)
        coll = pygame.sprite.spritecollideany(player,parts,pygame.sprite.collide_mask)
        if coll:
            player.collected[coll.charge]+=1
            coll.kill()
        drawDiagnostic(screen,velocity=player.velocity,neutrons=player.collected[0],protons=player.collected[1],electrons=player.collected[2],particle_cnt=len(parts))
        pygame.display.update()
        fpsClock.tick(60)
        timer.update()