При объединении двух кадров данных с ~ 1 миллионом строк каждый, один с двумя столбцами, а другой с ~ 20, я неожиданно обнаружил, что merge(..., all.x = TRUE, all.y = TRUE)
будет быстрее, чем dplyr::full_join()
. Это с dplyr v0.4
Merge занимает ~ 17 секунд, full_join занимает ~ 65 секунд.
Некоторое питание, хотя, как правило, я использую dplyr для задач манипуляции.
[...] пока вы удерживаете клавиши перемещения, pygame не может проверить координаты x и y вашего игрока, [...]
blockquote>Нет.
Пока вы удерживаете клавиши перемещения, никаких событий не происходит. Существует одно событие
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