2015-05-29 8 views
0

Я просто хочу нарисовать треугольник, используя метод pygame.draw.line.Переменная возвращает старое значение после смены

Определяет функцию drawTriangle, которая принимает начальные координаты x и y как параметры, помещает их в кортеж, затем создает еще два набора, значения которых зависят от начальных координат x и y.

Эти три точки будут вершинами треугольника. Затем функция рисует 3 строки - от точки 1 до точки 2, от точки 2 до точки 3, затем от точки 3 до точки 1.

Проблема в том, что при запуске программы выполняется только одна строка.

def drawTriangle(startx, starty): 
    point1 = (startx, starty) 
    point2 = (startx + 20, starty + 20) 
    point3 = (startx -30, starty - 30) 

    pygame.draw.line(SURFACE, GREEN, point1, point2) 
    pygame.draw.line(SURFACE, GREEN, point2, point3) 
    pygame.draw.line(SURFACE, GREEN, point3, point1) 
+2

Try печать значение точки 1, 2 и 3, прежде чем рисовать линии, но я думаю, что ваш заголовок не migth быть лучшим. –

+0

это не нарисовать треугольник ... – Veltro

ответ

1

Все ваши пункты расположены на одной линии. Может быть нужно:

def drawTriangle(startx, starty): 
    point1 = (startx, starty) 
    point2 = (startx + 20, starty + 20) 
    point3 = (startx -30, starty + 30) 

    pygame.draw.line(SURFACE, GREEN, point1, point2) 
    pygame.draw.line(SURFACE, GREEN, point2, point3) 
    pygame.draw.line(SURFACE, GREEN, point3, point1) 
+0

Im идиот. Я возился с очками и получил треугольник. Очевидно, все мои старые очки были на одной линии. –

+0

Они были. Все ваши точки имели форму '(startx + D, starty + D)' (для D = 0, 20, -30), которые лежат на строке 'y = x'. – chepner

Смежные вопросы