2014-03-07 3 views
0

저는 파이 게임으로 작업 중이며 그것을 배우려고합니다. 내가 어떻게하고 있는지 전화하고 싶다면 "버튼"을 만들 수있었습니다. 주 메뉴를 표시하는 main()이 있습니다. 그런 다음 재생하려는 수준을 선택할 수있는 pick_level()을 사용합니다. 내 문제는 일단 pick_level()이 실행되면 main() 텍스트를 화면에서 꺼내는 것입니다. 아래는 제 코드입니다. 어떤 이유로 든 올바르게 대응하지 못합니다.화면의 텍스트를 지우고 새 텍스트를 추가하십시오.

#import games 
import pygame 
from pygame.locals import * 
import sys 


pygame.init() 


DISPLAYSURF = pygame.display.set_mode((1024, 720), 0, 32) 
pygame.display.set_caption('The End') 

#Set color of main menu 
BLUE = (0, 0, 255) 
WHITE = (255, 255, 255) 
BLACK = (0, 0, 0) 
DISPLAYSURF.fill(BLUE) 

# Set up text to show. 
myfont = pygame.font.SysFont("curier new", 45) 
gameFont = pygame.font.SysFont("times new roman", 20) 

def main(): 
""" Main Program """ 
# render text 
lbltheEnd = myfont.render("The End", 1, WHITE) 
lblchooseLevel = gameFont.render("Choose Level", 1, WHITE) 
lblCredits = gameFont.render("Credits", 1, WHITE) 
lblexit = gameFont.render("Exit", 1, WHITE) 

DISPLAYSURF.blit(lbltheEnd, (100, 100)) 

#rectangle for button click 
global btnChooseLevel 
btnChooseLevel = pygame.draw.rect(DISPLAYSURF, BLACK, (98, 150, 111, 25)) 
DISPLAYSURF.blit(lblchooseLevel, (100, 150)) 


def pick_level(): 
""" Show pick Level """ 
lblLevel = myfont.render("Level 1", 1, WHITE) 
DISPLAYSURF.blit(lblLevel, (100, 100)) 


# Run the program 
main() 
while True: 
for event in pygame.event.get(): 
    if event.type == QUIT: 
     pygame.quit() 
     sys.exit() 

    # Clicks for make shift buttons 
    if event.type == MOUSEBUTTONUP: 
     print(str(event.pos[0]) + " " + str(event.pos[1])) 

     if(btnChooseLevel.collidepoint(event.pos)): 
      print("Choose Level Clicked") 
      pick_level() 


    pygame.display.update() 

답변

1

가장 빠른 방법은 전체 화면을 지우고 원하는 모든 것을 다시 그리는 것입니다. 당신의 pick_level() 코드의 나머지 다음에

DISPLAYSURF.fill(BLUE) #if BLUE is your background color or whatever background color you want 

은 쉽게 당신이 방법은 모든 메뉴에 대해 기본적인 배경을 그립니다 draw_background()라고해야하려면 다음을 수행 할 수 있습니다 pick_level()처럼 뭔가을 추가 할 수 있습니다 그 위에 특정 텍스트/이미지를 그립니다.

+0

매력처럼 작동합니다. 빠른 답변 주셔서 감사합니다. draw_background()에 추가하는 방법을 살펴 보겠습니다. – crzyone9584

+0

문제 없습니다. 다행스럽게도 도움이 될 수 있습니다. – sshashank124

관련 문제