2017-01-17 1 views
0

파이썬에서 파이 게임을 사용하여 게임을 만들고 사용자가 예 또는 아니오 결정을 내릴 수있게하려고 시도하지만 어떤 이유로 pygame.event.get()의 이벤트에 대해 "내 루프 입력": "사용자가 예/아니오 결정을 내릴 수있게하는 함수를 만드는 방법

셸에서 오류 메시지를 생성하지 않고 원하는 작업을 수행하지 않고 다른 것은 아무것도하지 않는 것처럼 보입니다. 여기

는 Y/N 함수를 호출하는 기능입니다 :

if SwordCheck == None: 
    dispOnTextBox("You don't have", 'anything to buy.', '') 
elif SwordCheck == False: 
    displayMoney(Kelts, Parts, Shreds) 
    dispOnTextBox('Do you want to', 'purchase that?', "it's 200 kelts") 
    VALUE = waitForYNDecision() 
    if VALUE == None: 
     pygame.display.update() 
     FPSCLOCK.tick() 
    elif VALUE == False: 
     dispOnTextBox('No? Ok, but please', 'put it back when', "you are done") 
     return False 
    elif VALUE == True: 
     dispOnTextBox('Alright! here you', 'go. Thank you', 'for your purchase') 
     return True 

을 그리고 여기 Y/N 기능이다 : 나는 다른 모든 기능과 유일한을 테스트 한

print 'CHOOSE Y/N with Up = Yes and Down = No' 
for event in pygame.event.get(): 
    if event.type == QUIT: 
     terminate() 
    elif event.type == KEYDOWN: 
     if event.key in (K_W, K_KP8): 
      return True 
     elif event.key in (K_S, K_KP5): 
      return False 
return None 

이들은 문제가 있습니다. 나는 이것에 아마추어이고 좋은 대답을 평가할 것입니다.

+0

파이 게임은 쉘에서 이벤트를 수신하지 않는 경우 잘 모르겠어요, 즉시 그것을 할 수 있습니다 - 당신을 파이 게임 창에서 버튼을 누를 때만 알 수 있습니다. 따라서 파이 게임 창을 사용해야 할 경우'print()'를 사용하여 메시지를 표시하는 것은 의미가 없습니다. – furas

+1

BTW : 우리는'CamelCase' 이름을 클래스에만 사용하고'UPPER_CASE' 이름은 상수에 대해서만 사용합니다. 변수와 함수에 대해서는'lower_case' 이름을 사용합니다 - 코드를 더 읽기 쉽게 만듭니다. – furas

+0

BTW :'for event'는 코드를 차단하지 않고 키를 기다리지 않고 버튼을 누르기 만하면 더 빨리 실행됩니다. 'true '키를 눌러서 키를 잡아야합니다. – furas

답변

0

그것의 사용자를 기대하는 것은 그냥 잠시에 넣어되지 않은 경우이 그 의도는하지만 진정한 루프

관련 문제