コード例 #1
0
ファイル: isometric.py プロジェクト: Chris-m41/CS241
def create_isometric_grid_lines(width, height, tile_width, tile_height, color, line_width):

    # Grid lines 1
    shape_list = ShapeElementList()

    for tile_row in range(-1, height):
        tile_x = 0
        start_x, start_y = isometric_grid_to_screen(tile_x, tile_row, width, height, tile_width, tile_height)
        tile_x = width - 1
        end_x, end_y = isometric_grid_to_screen(tile_x, tile_row, width, height, tile_width, tile_height)

        start_x -= tile_width // 2
        end_y -= tile_height // 2

        line = create_line(start_x, start_y, end_x, end_y, color, line_width=line_width)
        shape_list.append(line)

    # Grid lines 2
    for tile_column in range(-1, width):
        tile_y = 0
        start_x, start_y = isometric_grid_to_screen(tile_column, tile_y, width, height, tile_width, tile_height)
        tile_y = height - 1
        end_x, end_y = isometric_grid_to_screen(tile_column, tile_y, width, height, tile_width, tile_height)

        start_x += tile_width // 2
        end_y -= tile_height // 2

        line = create_line(start_x, start_y, end_x, end_y, color, line_width=line_width)
        shape_list.append(line)

    return shape_list
コード例 #2
0
def test_create_line():
    line = create_line(
        start_x=10, start_y=20, end_x=30, end_y=40,
        color=(100, 110, 120), line_width=5
    )
    assert line.mode == gl.GL_LINE_STRIP
    assert line.line_width == 5

    data = get_data_from_vbo(line.vbo, 2, 12)
    expected = np.zeros(2, dtype=buffer_type)
    expected["vertex"] = [10, 20], [30, 40]
    expected["color"] = [100, 110, 120, 255], [100, 110, 120, 255]
    np.testing.assert_array_equal(data, expected)