Как связать каждый кружок с верхним левым углом в pygame? - PullRequest
1 голос
/ 07 мая 2020

Пока у меня есть этот код, и мне нужно рисовать линию из верхнего левого угла при нажатии на каждый кружок. Однако сейчас у меня есть только тип созвездия звезды, где круг соединяется со следующим кругом.

from pygame import * 

init()
size = width, height = 650, 650
screen = display.set_mode(size)

BLACK = (0, 0, 0)
GREEN = (0, 255, 0)

running = True
myClock = time.Clock()
prev_pos = None

# Game Loop
while running:
    for e in event.get(): 
        if e.type == QUIT:
            running = False
        if e.type == MOUSEBUTTONDOWN:
            if e.button == 1:
                if prev_pos != None:
                    draw.line(screen, GREEN, prev_pos, e.pos)
                prev_pos = e.pos
                draw.circle(screen, GREEN, e.pos, 10)
            if e.button == 3:     
                prev_pos = None 
                screen.fill(BLACK)

    display.flip()
    myClock.tick(60)

quit()

1 Ответ

2 голосов
/ 08 мая 2020

В левом верхнем углу экрана (0,0). Документацию по функции рисования линий можно найти здесь: https://www.pygame.org/docs/ref/draw.html#pygame .draw.line

Так что простое изменение кода рисования линий:

TOP_LEFT = ( 0, 0 )

...

draw.line( screen, GREEN, TOP_LEFT, e.pos )

даст вам линия от верхнего левого угла до центра каждого круга.

Все эти операции довольно просты, они действительно помогут вам узнать, если вы потратите немного времени на чтение документации - по крайней мере, для операции, которую вы пытаетесь выполнить. Копирование и вставка кода из SO - не лучший способ чему-либо научиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...