Exemple #1
0
def main():
    #Initialize Everything
    pygame.init()
    WIDTH, HEIGHT = 1024, 720 
    screen = pygame.display.set_mode((WIDTH, HEIGHT))
    pygame.display.set_caption('Yxkull')
    pygame.mouse.set_visible(0)

    #Create The Backgound
    if 1:
        background = pygame.Surface(screen.get_size())
        background = background.convert()
        background.fill((250, 250, 250))
    else:
        background, bg_rect = load_image('background.bmp')

    hud = None

    # Add walls to the background
    
    # Joysticks
    JOYSTICKS = pygame.joystick.get_count()
    PLAYERS = 2 * JOYSTICKS 
    joysticks = [pygame.joystick.Joystick(i) for i in xrange(JOYSTICKS)]  

    for i, j in enumerate(joysticks):
        j.init()
        print j.get_numaxes()


    axes = []
    for j in xrange(JOYSTICKS):
        for i in xrange(2):
            def _get_axis(axis, joysticks):
                return joysticks[j].get_axis(i*2+axis)            
            axes.append(_get_axis)

    #print axes

    engine = Engine((WIDTH, HEIGHT))
    
    colors = [(100, 0, 0), (0, 100, 0), (0, 0, 100), (100, 0, 100)]
    
    for p in xrange(PLAYERS):
        player = Player(engine, colors[p], axes[p])
        #player.pos = positions[p]
        engine.add_player(player)

    #players += [Player(j, (0, 100*(1-i), 100*i))]

    screen.blit(background, (0, 0))
    pygame.display.flip()


    heart, heart_rect = load_image('heart.bmp', -1)
    num_hearts_generated = -1

    clock = pygame.time.Clock()

    engine.reset()

    while 1:
        clock.tick(60)

        for event in pygame.event.get():
            if event.type == QUIT:
                return
            elif event.type == KEYDOWN and event.key == K_ESCAPE:
                return
            elif event.type == MOUSEBUTTONDOWN:
                pass
            elif event.type is MOUSEBUTTONUP:
                pass
            elif event.type == KEYDOWN and event.key == K_SPACE:
                if engine.game_over:
                    engine.reset() 

        for j in xrange(JOYSTICKS):
            for i in xrange(2):
                p = engine.players[j*2+i]
                p.apply_control(joysticks[j].get_axis(i*3), joysticks[j].get_axis(i*3+1))
    
    
        engine.process()

        # Draw
        screen.blit(background, (0, 0))

        #for p in engine.entities:
            #pygame.draw.circle(screen, p.color, p.pos, p.radius) 

        #for p in engine.players:
        #    pygame.draw.circle(screen, p.color, p.pos, p.radius) 

        engine.draw(screen)

        for beam in engine.beams:
            pygame.draw.line(screen, beam.color, beam.pos1, beam.pos2, beam.width)

        if engine.game_over:
            #pygame.draw.rect(screen, (0, 0, 0), pygame.Rect(0, 0, WIDTH, HEIGHT))
            if pygame.font:
                font = pygame.font.Font(None, 36)
                text = font.render("Game Over", 1, (255, 255, 255))
                textpos = text.get_rect(centerx=screen.get_width()/2, centery=screen.get_height()/2)
                screen.blit(text, textpos)


        if num_hearts_generated != engine.points:
            hud = pygame.Surface(screen.get_size(), SRCALPHA)
            hud = hud.convert_alpha() 

            for i in xrange(engine.points):
                hud.blit(heart, (5+i*36, 5))

            num_hearts_generated = engine.points

        if hud:
            screen.blit(hud, (0, 0))

        pygame.display.flip()
Exemple #2
0
from engine import Engine
e = Engine()
e.add_player()
e.update_velocity('red', (1, 1))