2017-12-04 2 views
0

저는 파이 게임과 함께 시각적 블랙 잭 게임을 제작하고 있습니다. 지난 1 시간 정도 주위를 둘러 보았고, 내가 원하는 것을 찾지 못하는 것 같습니다. 사용자가 쉽게 메뉴를 탐색 할 수 있도록 디스플레이 (코드에서 스크린이라는)를 업데이트해야합니다. 아래의 기능은 필자가 읽은 모든 것의 제품이며, 필요한 버튼으로 적용 및 실행될 때 마우스 버튼을 누르고있는 동안 "블랙 잭 블래스트"텍스트의 색상 만 변경합니다.파이썬 파이 게임 - 디스플레이 업데이트

def update_window(): 
     textsurface = Font1.render('BlackJack Blast!', True, e_m_lighter) 
     screen.blit(textsurface,(106,100)) 
     pygame.display.update() 

사람이 내가 영구적으로 하나의 버튼을 눌러으로 업데이트 할 수있는 디스플레이를 얻을 수있는 방법에 대한 모든 지원을 제공 할 수 있을까요?

+0

코드 샘플을 추가하거나이 질문에 게시 한 것을 수정하십시오. 현재로 서서 형식화와 범위는 우리가 당신을 도울 수 없게합니다. 여기에 대한 정보를 얻을 수있는 [훌륭한 리소스] (http://stackoverflow.com/help/mcve)가 있습니다. 코드와 함께 행운을 빌어 요! –

+0

더 나은 OOP (Object-Oriented Programing)를 배우고 상태를 기억할 수있는 Button 버튼을 생성 할 수 있습니다. 'update_window()'는 텍스트를 변경하지만 기억하지 못하므로 다음 번에'mainloop'가 구버전을 그릴 것입니다. – furas

+0

예제 [button-click-cicle-color] (https://github.com/furas/python-examples/tree/master/pygame/button-click-cycle-color) -'self '의 현재 색상을 기억합니다. 색인 '을 클릭하면 올바른 색상으로 표시됩니다. – furas

답변

0

내가 즉흥적으로 사용할 수 있도록 코드가 표시되지 않습니다.

은 두 부분으로 당신이 buttom의를 클릭 한 것을 remeber 것이다 변수 (. 즉 clicked = False를) 분할 코드를 사용해야합니다 - 하나 두 번째는 다른 버튼을 clicked

# set on start (before mainloop) 

clicked = False 

# executed when you click in button 

def update_window(): 
    global clicked 
    clicked = True  

# in main loop when you draw button 

if clicked 
    textsurface = Font1.render('BlackJack Blast!', True, e_m_lighter) 
else: 
    textsurface = Font1.render('BlackJack Blast!', True, NORMAL_COLOR) 

screen.blit(textsurface,(106,100)) 
pygame.display.update() 

가치에 따라 그릴 것, clicked 변경됩니다 또는 현재 이미지를 유지하기 위해 변수를 사용할 수 있습니다.

# set on start (before mainloop) 

normal_text = Font1.render('BlackJack Blast!', True, NORMAL_COLOR) 
clicked_text = Font1.render('BlackJack Blast!', True, e_m_lighter) 

current_text = normal_text 

# executed when you click in button 

def update_window(): 
    global current_text 
    current_text = clicked_text 

# in main loop when you draw button 

screen.blit(current_text, (106,100)) 
pygame.display.update() 
+0

내가 찾던 답변 만! 고마워요! –

+0

나는 이것을 시험해 보았고, 텍스트의 색상을 바꿔도 완벽하게 작동하지만 배경과 똑같은 것처럼 보이지는 않습니다. 음, 배경색은 변경되지만 이전에 렌더링 된 항목은 화면에 그려지지 않습니다. 어떤 충고? 배경을 가진 –

+0

도 비슷하게해야합니다. '클릭하면'변수에 다른 이미지 또는 색상을 지정하고 나중에이 변수를 사용하여 배경을 그리거나 배경을 블롯해야합니다. – furas

관련 문제