как сделать так, чтобы одна функция перестала работать, пока нажата клавиша и получился жирный шрифт? - PullRequest
2 голосов
/ 16 апреля 2019

Я хочу, чтобы белая линия перестала двигаться, когда я нажимаю 'w'.Как я могу сделать, чем?И как я могу сделать это смелее?Белая линия должна двигаться бесшумно, а когда пользователь нажимает 'w', линия должна перестать двигаться.

PIVOT = (WINDOW_WIDTH/2, 150)
SWINGLENGTH = PIVOT[1]*0.8


def fill():

class Pendulum(pygame.sprite.Sprite):


pen = Pendulum()

TICK = USEREVENT + 2
pygame.time.set_timer(TICK, TIMETICK)

def input(events):
    for event in events:
        if event.type == QUIT:
            sys.exit(0)
        elif event.type == TICK:
            pen.update()

#while True:
 #   input(pygame.event.get())
  #  pygame.display.flip()


finish = False
while not finish:
    for event in pygame.event.get():

        if event.type == pygame.QUIT:
            finish = True

        while True:
            input(pygame.event.get())
            pygame.display.flip()

        if event.type == pygame.KEYDOWN and event.key == pygame.K_w:
            #if event.type == pygame.KEYDOWN and event.key == pygame.K_w:
            print('Forward')
            fill()
            #screen.fill((255, 0, 0))
            #input(pygame.event.get())
            pygame.display.flip()

1 Ответ

1 голос
/ 16 апреля 2019

Вы можете использовать pygame.key.get_pressed() для получения текущего состояния всех ключей.

Проверьте pygame.key.get_pressed()[pygame.K_w], нажата ли w :

, например

finish = False
while not finish:

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            finish = True

    allKeys = pygame.key.get_pressed()

    # move the white line if 'w' is not pressed 
    if not allKeys[pygame.K_w]:            

        # [...]

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