Как получить счет, чтобы получить обновление и отобразить на экране? - PullRequest
0 голосов
/ 05 апреля 2019

Когда игрок касается монет, счет обновляется и отображается, например, счет перекрывается, например, 1,2,3 и т.д., делая неясным, чтобы увидеть счет. Я пытаюсь получить его, чтобы предыдущий счет исчез и отображался только новый.

def main():  #my main loop 
    running = True
    clock = pygame.time.Clock()  # A clock to limit the frame rate.
    score = (1)
    score = str(score)

myfont = pygame.font.SysFont('OpenSans', 30)        
textsurface = myfont.render('Level ONE:   Greenland', False, (0, 0, 0))        
background.blit(textsurface,(500,10))

textsurface = myfont.render('Score:', False, (0, 0, 0))        
background.blit(textsurface,(10,10))

while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    player_hit_list = pygame.sprite.spritecollide(player, coin_list,True) 
        for coin in player_hit_list:
             textsurface = myfont.render(score, False, (0, 0, 0))
             background.blit(textsurface,(90,10))
             score = str(int(score)+ 1))

    sprites.update()
    screen.blit(background, (0, 0))
    sprites.draw(screen)  # Draws all of the sprites onto the screen
    clock.tick(60)  # Limit the frame rate to 60 FPS.
    pygame.display.update()

I, кроме как в верхнем левом углу, показывает Оценка: 1, и когда к монетке прикасаются, она обновляется, например. Оценка: * * 1004

1 Ответ

0 голосов
/ 05 апреля 2019

Используя PyGame surface subsurface() функцию , скопируйте часть фона, которая находится непосредственно под ядром, возможно, добавив немного больше для обработки большего количества цифр в ядре.

Затем, чтобы обновить партитуру, сотрите существующую партитуру, написав эту часть фона, затем нарисуйте растровое изображение текста.

Что-то вроде:

# rectangle around score
under_score_rect = [ 90, 10,  100,  40 ]  
# copy of background that's under the score
under_score_background = background.subsurface( under_score_rect ).copy()

...

def drawScore( score, screen, background_img ):
    global score_font
    textsurface = score_font.render( score, False, (0, 0, 0) )
    screen.blit( background_img, ( 90, 10 ) )
    screen.blit( textsurface, ( 90,10 ) )

...

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