나는 잠시 동안 진정한 루프에서 게임을 실행하고 있는데, 사용자에게 "Play again?"을 물어볼 수 있기를 원합니다. 나는 이미 텍스트로 팝업을위한 코드를 가지고 있지만 사용자가 rect를 클릭하거나 예를 들어 y를 치고 코드가 다시 자기를 실행하는 방법이 필요하다.파이 게임 재시작 하시겠습니까?
답변
실행에서 끝내고 끝내면 main()
은 사용자에게 다시 재생할 것인지 묻습니다. 그렇다면 모든 것을 설정 한 후 기본 루프를 호출하십시오.
또는
그냥 다시 명확 묻는 부분이 기본적으로 거기에 기본값으로 모든 변수를 다시 초기화하고 사용자가 사용자가 RECT를 클릭하면 다시말할하기 위해 재생하고자하는 경우 루프를하자, 마우스 위치에서 1 x 1 rect를 설정 한 다음 클릭 할 때 th 직사각형이 충돌하고 있습니다. 그런 다음 DeadChex와 마찬가지로 루프를 다시 자체 함수로 사용하여 루프를 호출하십시오.
특히이 기능을 실행 해보십시오. 그것을 당신의 마음의 내용에 맞게 조정하십시오. 플레이어가 죽으면 나는 이것이 당신이 찾고 있던 답 희망)
import pygame
pygame.init()
SCREEN_WIDTH = 600
SCREEN_HEIGHT = 400
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
bigfont = pygame.font.Font(None, 80)
smallfont = pygame.font.Font(None, 45)
def play_again():
text = bigfont.render('Play again?', 13, (0, 0, 0))
textx = SCREEN_WIDTH/2 - text.get_width()/2
texty = SCREEN_HEIGHT/2 - text.get_height()/2
textx_size = text.get_width()
texty_size = text.get_height()
pygame.draw.rect(screen, (255, 255, 255), ((textx - 5, texty - 5),
(textx_size + 10, texty_size +
10)))
screen.blit(text, (SCREEN_WIDTH/2 - text.get_width()/2,
SCREEN_HEIGHT/2 - text.get_height()/2))
clock = pygame.time.Clock()
pygame.display.flip()
in_main_menu = True
while in_main_menu:
clock.tick(50)
for event in pygame.event.get():
if event.type == pygame.QUIT:
in_main_menu = False
pygame.display.quit()
pygame.quit()
quit()
elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:
x, y = event.pos
if x >= textx - 5 and x <= textx + textx_size + 5:
if y >= texty - 5 and y <= texty + texty_size + 5:
in_main_menu = False
break
play_again()
pygame.display.quit()
pygame.quit()
(만 play_again 호출해야 (을하거나 놀이를 할 일이 무엇이든 다시 텍스트 나타납니다).
메인 프로그램 루프에서 플레이어가 게임을 다시 시작하기를 원하는 키에 대한 문을 if 문에 새 event.key로 만든 다음 if 문 내에서 main()을 호출하십시오. 그러면 모든 것이 다시 제곱 1로 재설정됩니다.
아래 예에서 사용자가 사망하고 R 키를 누른 다음 main()을 다시 시작하면이를 감지합니다.
# -------- Main Program Loop -----------
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
player.go_left()
if event.key == pygame.K_RIGHT:
player.go_right()
if event.key == pygame.K_UP:
player.jump()
if event.key == pygame.K_SPACE:
player.shoot()
if event.key == pygame.K_r and not player.alive():
main()
메인 루프에서 아래로 내려 오면 플레이어가 다시 생성하기 위해 R 키를 누르라는 텍스트가 표시됩니다.
if not player.alive():
gameover = font.render("Press R to Respawn", False, (255, 255, 255))
rect = gameover.get_rect()
rect.center = screen.get_rect().center
screen.blit(gameover, rect)
: 내 예에서
play_again = 1
while play_again:
play_again = int(raw_input("Play again? 0=No, 1=Yes"))
if play_again:
main()
else:
break
pygame.quit()
내가에서 True
을 넣어 그가 연주하고자하는 경우 사용자에게이 같은 것을 넣어 코드의 끝 부분에 끝 내 main()
루프의 끝 부분에서 main()
이 모두 True
을 반환하므로 사용자 입력이 1
이고 종료가 0
인 경우 play_again
루프가 게임을 반복 할 수 있습니다. .
exec() 함수를 사용하여 프로세스를 단순화 할 수 있습니까?
다음은 유사한 문제에 대한 제 응답의 예입니다. 나는 이것을 당신의 루프에서도 사용할 수 있다고 생각합니다.
- 1. 파이 게임 게임 노트
- 2. 파이 게임
- 3. , 파이 게임
- 4. 파이 게임 오디오 재생 속도
- 5. 파이 게임 이미지 크기?
- 6. 나는 이미지가 파이 게임
- 7. 파이 게임 물리 시뮬레이션
- 8. 파이 게임 디스플레이 숨기기
- 9. 파이 게임 설치
- 10. 파이 게임 클래스 구조
- 11. wxpython 또는 파이 게임?
- 12. 파이썬과 파이 게임 통합하기
- 13. 파이 게임 오버레이
- 14. 파이 게임 카운팅
- 15. 파이 게임 설치
- 16. 파이 게임 : 블릿
- 17. 직사각형의 텍스트 - 파이 게임
- 18. 파이 게임/파이썬에지도로드하기
- 19. 파이썬/파이 게임
- 20. 파이 게임 대 wxpython
- 21. 파이 게임 이미지로드를 거부
- 22. 파이 게임. 오류가 발생했습니다.
- 23. 파이 게임 이벤트 큐
- 24. 파이 게임 문제
- 25. 파이 게임 코드 조직
- 26. 파이 게임 이미지 AttributeError
- 27. 파이 게임 충돌
- 28. 파이 게임 2.7 파이 메모리로 메모리 관리
- 29. 보드 게임 시뮬레이터 만들기 (파이썬?) (파이 게임?)
- 30. 파이 게임 표면이있는 게임 개체는 어떻게 직렬화해야합니까?