2014-11-15 3 views
1

저는 현재 Pyglet 라이브러리를 사용하여 브릭 브레이커 클론을 프로그래밍하고 있습니다. 게임의 '보너스'(예 : 긴 패들, 빠른 패들 이동, 큰 공)를 위해 최대 20 초를 계산하는 타이머를 만들고 싶습니다. 내가 할 수있는만큼 인터넷을 파고 있었지만 대답을 찾을 수 없었다.파이썬 2.7에서 타이머를 어떻게 만듭니 까?

+0

'time.sleep'을 찾고 계십니까? 네 문제를 잘 모르겠다. –

+0

"타이머"는 컴퓨터 코드와 관련하여 특별한 의미가 있습니다. "시간 초과 카운터 표시"를 의미합니까? –

+1

Pyglet에 대해서는 잘 모릅니다. 그러나 이것은 도움이 될 것입니다 : [정기적으로 함수 호출하기] (http://www.pyglet.org/doc/programming_guide/calling_functions_periodically.html). –

답변

0
import threading 

bonuses_count = 0 

def count_bonuses(): 
    global bonuses_count 
    # paddle = count(paddle) # something your logic part here 
    bonuses_count += 20 
    print "counting bonuses :- ", (bonuses_count) 
    t = threading.Timer(20.0, count_bonuses).start() 

t = threading.Timer(20.0, count_bonuses) 
t.start() 

그럼 내가 계산 보너스의 논리를 모르는하지만 난 당신이 매 20 초 후에 실행됩니다 스레드을 만들어 20 초 타이머를 acheive 수 있다고 생각합니다.

여기에서 게임 로직을 포함하고 매 20 초마다 실행되도록 함수 count_bonuses를 만들었습니다. 당신이 당신의 gamming 논리에 따라 키보드 intruption와 스레드를 중지하는 KeyboardInterrupt을이 스레드를 중지하거나 만들려면

당신은 당신의 자신의 stopflag을 만들 수 있습니다.

counting bonuses :- 20 
counting bonuses :- 40 
counting bonuses :- 60 
counting bonuses :- 80 
+0

음, 죄송 합니다만, 보너스였습니다. 반송되지 않았습니다. 어쨌든 고마워. –

+0

@Don Abril 내 잘못, 내 대답을 편집했습니다. 대답이 옳았다거나 도움이되었다고 생각되면 나중에 답변을 받아들이거나 upvote를 주면 나에게 비슷한 도움이 될 것입니다. –

0

시도해보십시오.

import mx.DateTime as mt 
import time 
def settime(): 
    st=mt.now() 
    while(True): 
     time.sleep(1) 
     tt=mt.now() 
     if (int((tt-st).seconds)==20): 
      print 'level up' 
      st=mt.now() 
     elif (int((tt-st).seconds)>20): 
      print 'logic error' 
     else: 
      print int((tt-st).seconds) 
관련 문제