2014-07-07 5 views
0

버튼 중 하나를 클릭 할 때 스프라이트를 생성하는 것이 좋습니까? 스프라이트는 이전에 생성되고 사용자는 화면에 그려서 "초기화"합니다. 불행히도 내가 지금 가지고있는 코드는 작동하지 않습니다. "시작"을 인쇄하지만 스프라이트를 그리지는 않습니다. 그 이유는 무엇일까요?버튼 클릭으로 스프라이트 그리기 - 파이 게임

코드 :

if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: 
      if button.collidepoint(pygame.mouse.get_pos()): 
       screen.blit(player.image, player.rect.topleft) 
       print ("Start") 

답변

0

화면을 여러 번 매 초마다의 특정 번호를 업데이트하는 메인 루프를 가지고 있기 때문에 그것은 아마도 표시되지 않습니다. 스프라이트를 나타나게하려면 화면을 업데이트 할 때마다 블리트해야합니다.

+0

나는 그것이 합리적으로 작동 할 수있는 방법이 있나요를? –

+0

이것은 실제로는 꽤 정상입니다. 스프라이트가 움직이거나 움직이는 것과 같은 일을하고 싶을 때 훨씬 더 유용하다고 생각합니다. 게시 된 다른 답변에는 더 완벽한 코드가 있습니다. – skyress3000

1

예 :

blit_player = False 

while True: 

    # .... 

    if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: 
     if button.collidepoint(pygame.mouse.get_pos()): 
      blit_player = True 
      print ("Start") 

    # .... 

    if blit_player: 
     screen.blit(player.image, player.rect.topleft) 

    pygame.display.update 

또는 - whan 더 많은 스프라이트 추가하는 경우 :

blited_sprites = [] 

while True: 

    # .... 

    if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: 
     if button.collidepoint(pygame.mouse.get_pos()): 
      blited_sprites.append(player) 
      print ("Start") 

    # .... 

    for x in blited_sprites: 
     screen.blit(x.image, x.rect.topleft) 

    pygame.display.update 
관련 문제