Pygame заполнить и блиц не редактирует экран

Простым способом с PostgreSQL было бы использовать array_agg :

ms = Model.select('"Name", "Office", array_agg("Device") as "Devices"').group(:Name, :Office)

Это даст вам Model s в ms, и каждый из них будет иметь extra Devices, который даст вам массивы строк устройств.

Или вы могли бы использовать string_agg:

ms = Model.select('"Name", "Office", string_agg("Device", ',') as "Devices"').group(:Name, :Office)

, а методы Devices предоставят вам строки вместо массивов.

Ни один из них не гарантирует какой-либо конкретный порядок для агрегации, но вы можете указать порядок , если хотите:

array_agg("Device" order by "Device")
string_agg("Device", ',' order by "Device" desc)

3
задан korjak 18 January 2019 в 22:37
поделиться

1 ответ

Положение полосы (barrect), положение мяча (ballrect) и скорость (speed) должны быть установлены в исходное состояние после перезапуска игры: [119 ]

Создайте функцию, которая инициализирует игровые состояния:

def InitGame():
    global ballrect, barrect, speed
    speed = [2, 2]
    ballrect = ball.get_rect()
    barrect = bar.get_rect(center=(320,475))  

Вызовите ее один раз при запуске:

screen = pygame.display.set_mode(size)

ball = pygame.image.load("intro_ball.gif")
bar = pygame.image.load("bar_low.gif")
over = pygame.image.load("game_over.gif")
overrect = over.get_rect(center=(width/2, height/2 ))

InitGame();

Вызовите ее снова, когда игра должна быть перезапущена. Я рекомендую не откладывать игру на pygame.time.delay() . Подсчитайте время, когда игра должна быть перезапущена starttime. Нарисуйте экран игры или экран «игра окончена» в зависимости от времени:

starttime = 0
while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT: sys.exit()
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_w:

                # reset game and init the new start time
                InitGame()
                starttime = pygame.time.get_ticks() + 2000

    if pygame.time.get_ticks() > starttime: 

        keys = pygame.key.get_pressed()
        # [...]

        screen.fill(black)
        screen.blit(ball, ballrect)
        screen.blit(bar, barrect)

    else:

        screen.fill(black)
        screen.blit(over, overrect)

    pygame.display.flip()
0
ответ дан Rabbid76 18 January 2019 в 22:37
поделиться
Другие вопросы по тегам:

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