Exemplo n.º 1
0
def main():
    pygame.display.quit()
    pygame.display.init()

    main_display = pygame.display.set_mode(size=(SCREEN_WIDTH, SCREEN_HEIGHT),
                                           flags=DOUBLEBUF)

    hexgrid = HexGrid.HexGrid(main_display, radius=RADIUS)

    for tile in hexgrid:
        tile.draw_tile()

    pygame.display.update()

    running = True
    while running:
        event = pygame.event.wait()
        mouse_pos = pygame.mouse.get_pos()
        hovered_tile = hexgrid.hovered_tile(mouse_pos)
        updated_rects = None

        if event.type == QUIT:
            running = False
            break

        if event.type == KEYUP:
            if event.key == K_q:
                running = False
                break

            if event.key == K_c:
                if hovered_tile:
                    updated_rects = hovered_tile.add_unit(Units.Circle())

            elif event.key == K_t:
                if hovered_tile:
                    updated_rects = hovered_tile.add_unit(Units.Triangle())

            elif event.key == K_d:
                if hovered_tile:
                    updated_rects = hovered_tile.delete_unit()

        elif event.type == MOUSEMOTION:
            if hovered_tile:
                updated_rects = hexgrid.highlight_ring(hovered_tile,
                                                       distance=2)

        elif event.type == MOUSEBUTTONUP:
            if event.button == 3:
                main_display.fill((0, 0, 0))
                for tile in hexgrid:
                    tile.draw_tile()
                pygame.display.flip()
                hexgrid.previous_selected = None

        elif event.type == MOUSEBUTTONDOWN:
            if event.button == 1:
                print("executing map")
                for x in range(main_display.get_width()):
                    for y in range(main_display.get_height()):
                        hovered_tile = hexgrid.hovered_tile((x, y))
                        if hovered_tile:
                            color = hovered_tile.my_color
                            main_display.set_at((x, y), color)
                pygame.display.flip()

        if updated_rects is not None:
            pygame.display.update(updated_rects)

    pygame.quit()