2013-04-15 2 views
0

Я очень новичок в Python. Я создаю простой 3D-мир с помощью Vizard 4.0, и я хочу добавить секундомер к экрану. Я не хочу фактический трехмерный секундомер, просто текстовое поле в углу экрана, которое обновляется по мере того, как подсчитывает секундомер. Heres, что я до сих пор, и он не работает, любые предложения или помощь будут очень оценены!Добавление функции щелчка к кнопке в Python

def mytimer(num): 
    time = 'Elapsed time:',viz.elapsed(),'seconds' 
    print time 
    timer_update = viz.addText('Time:', viz.SCREEN) 
    timer_update.color(viz.GREEN) 
    timer_update.fontSize(42) 

    viz.callback(viz.TIMER_EVENT,mytimer) 
    viz.starttimer(0,1, viz.FOREVER) 

ответ

0

Трещины это :)

#Add text fields to a dictionary. 
text_dict = {} 
for kind in ['score','instructions','time' ]: 
    text = viz.addText('', viz.SCREEN) 
    text.setScale(.5,.5) 
    text.alignment(viz.TEXT_CENTER_BASE) 
    text.alpha(1) 
    text_dict[ kind ] = text 
text_dict['score'].setPosition(.1,.9) 
text_dict['instructions'].setPosition(.5,.5) 
text_dict['time'].setPosition(.1,.85) 


def game_timer_task(): 
    #Grab the text field for 
    #time. 
    text = text_dict[ 'time' ] 
    time = 0 
    text.message('Time: 0') 
    #Loop through as long as time 
    #is under a certain number of 
    #seconds. 
    while time < 10: 
     yield viztask.waitTime(1) 
     time += 1 
     text.message('Time: ' + str(time)) 


def game(): 
    time_passing = viztask.waitTask(game_timer_task()) 
    data = viz.Data() 

    yield viztask.waitAny([time_passing], data) 


    if data.condition == time_passing: 
     game_over = text.message('Game Over!') 
     game_over.setPosition(.1,.85) 

def main_sequence(): 
    yield game() 


viztask.schedule(main_sequence()) 
Смежные вопросы