この2つのコードがあります。最初のものは機能し、2 つ目は機能しません。すべての行にコメントを付け、次の行を導入するまでコードが機能することを確認しました。
d = yield viztask.waitDraw()
2番目のものでは、下で宣言され"collision"ていても、最初の行であるさえ出力しません。viztask.waitDraw()
作業バージョン:
ball.enable(viz.COLLIDE_NOTIFY)
def onCollide(e):
print('collision')
global count
count = count+1
print(count)
viz.callback( viz.COLLIDE_BEGIN_EVENT, onCollide )
def testReactionTime(threadName):
print 'boolTime: '
print(boolTime)
while boolTime:
#Wait for next frame to be drawn to screen
d = yield viztask.waitDraw()
#Save display time
displayTime = d.time
#Wait for keyboard reaction
d = yield viztask.waitMouseUp(viz.MOUSEBUTTON_LEFT)
#Calculate reaction time
reactionTime = d.time - displayTime
print(reactionTime)
非稼働バージョン:
ball.enable(viz.COLLIDE_NOTIFY)
def onCollide(e):
print('collision')
global count
if e.obj2 == beginning:
#Wait for next frame to be drawn to screen
d = yield viztask.waitDraw()
#Save display time
displayTime = d.time
#viztask.schedule( testReactionTime("h"))
print('start time')
elif e.obj2 == end:
global reactionTime
d = yield viztask.waitDraw()
reactionTime = d.time - displayTime
print("count = ")
print(count)
print("time = ")
print(reactionTime)
else:
count = count+1
print(count)
viz.callback( viz.COLLIDE_BEGIN_EVENT, onCollide )