在Python中向按钮添加单击函数
我对Python非常陌生。我正在使用Vizard 4.0创建一个简单的3D世界,我想在屏幕上添加一个秒表。我不想要一个真正的3D秒表,只是在屏幕的角落里有一个简单的文本框,随着秒表的计数而更新。这是我到目前为止所做的,但它不起作用,任何建议或帮助都将不胜感激在Python中向按钮添加单击函数,python,vizard,Python,Vizard,我对Python非常陌生。我正在使用Vizard 4.0创建一个简单的3D世界,我想在屏幕上添加一个秒表。我不想要一个真正的3D秒表,只是在屏幕的角落里有一个简单的文本框,随着秒表的计数而更新。这是我到目前为止所做的,但它不起作用,任何建议或帮助都将不胜感激 def mytimer(num): time = 'Elapsed time:',viz.elapsed(),'seconds' print time timer_update = viz.addText('Time
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)
破解它:)
#将文本字段添加到字典中。
text_dict={}
对于['score'、'instructions'、'time']中的实物:
text=viz.addText(“”,viz.SCREEN)
text.setScale(.5,.5)
文本对齐(即文本\中心\基础)
文本A(1)
text_dict[种类]=文本
text_dict['score'].setPosition(.1,.9)
text_dict['instructions'].setPosition(.5、.5)
text_dict['time'].setPosition(.1,.85)
def game_timer_task():
#抓取文本字段以进行编辑
#时间。
text=text_dict[“时间”]
时间=0
text.message('时间:0')
#循环时间尽可能长
#在一定数量的
#秒。
当时间<10时:
任务等待时间(1)
时间+=1
text.message('Time:'+str(Time))
def game():
时间通过=viztask.waitTask(游戏计时器任务())
数据=即数据()
产生viztask.waitAny([time_passing],data)
如果data.condition==经过的时间:
game\u over=text.message('game over!')
游戏结束。设置位置(.1,.85)
def main_序列():
产量博弈()
viztask.schedule(主任务序列())
#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() )