Создание границ при использовании pygame.key.get_pressed ()

При объединении двух кадров данных с ~ 1 миллионом строк каждый, один с двумя столбцами, а другой с ~ 20, я неожиданно обнаружил, что merge(..., all.x = TRUE, all.y = TRUE) будет быстрее, чем dplyr::full_join(). Это с dplyr v0.4

Merge занимает ~ 17 секунд, full_join занимает ~ 65 секунд.

Некоторое питание, хотя, как правило, я использую dplyr для задач манипуляции.

1
задан Zan3y 24 March 2019 в 04:50
поделиться

1 ответ

[...] пока вы удерживаете клавиши перемещения, pygame не может проверить координаты x и y вашего игрока, [...]

Нет.

Пока вы удерживаете клавиши перемещения, никаких событий не происходит. Существует одно событие pygame.KEYDOWN, когда клавиша нажата, и одно событие pygame.KEYUP, когда клавиша отпущена.
Но нет непрерывных событий, когда клавиша нажата.

Идеально подходит для получения нажатой клавиши в цикле событий с помощью ( pygame.key.get_pressed() ) и для изменения состояния управляющих переменных movingUP, movingDOWN, [116 ] movingRIGHT. Значения, возвращаемые pygame.key.get_pressed(), обновляются, когда событие обрабатывается pygame.event.get() .

Но проверка границ должна выполняться в каждом кадре, каждый раз, когда позиция (x, y) была изменена. Это должно быть сделано в основном игровом цикле, а не в цикле событий:

maxX = # screenWidth - playerWidth  
maxY = # screenHeight - playerHeight 

while loop:
    if eventHandler == "LEVEL1":
        # SEE IF PLAYER QUIT AND PROCEED TO QUIT
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                loop = False

        if event.type == pygame.KEYDOWN:
            keys = pygame.key.get_pressed()
            if keys[pygame.K_UP]:
                movingUP = True
            # [...]

        if movingUP == True:
            y_change -= 5 
        # [...]

x += x_change
y += y_change

if x < 0:
    x = 0
    x_change = 0
elif x > maxX
    x = maxX
    x_change = 0
if y < 0:
    y = 0
    y_change = 0
elif y > maxY
    y = maxY
    y_change = 0
0
ответ дан Rabbid76 24 March 2019 в 04:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: