2017-11-09 3 views
0

ビジュアル短期記憶に関する実験をコード化する。私は8つの四角形を一度描きたい(4left/4right)。私はループをコーディングし、心理学はフレームごとに8つの正方形を描くが、私は1つの試行の間に8つの正方形しか望んでいない。どのように私はこれを取り除くのですか?Pythonで設定を一度描画するには?

def drawLearn(): 


    for i in range(len(squaresLeft)): 
     while True: 
     squaresLeft[i].pos = (xL(),y()) 
     validPosition = True 
     for j in range(i): 
      if overlaps(squaresLeft[i], squaresLeft[j]): 
       validPosition = False 
     if validPosition: 
      break 

for i in range(len(squaresRight)): 
    while True: 
     squaresRight[i].pos = (xR(),y()) 
     validPosition = True 
     for j in range(i): 
      if overlaps(squaresRight[i], squaresRight[j]): 
       validPosition = False 
     if validPosition: 
      break 


    Sqr1.draw() 
    Sqr2.draw() 
    Sqr3.draw() 
    Sqr4.draw() 
    Sqr5.draw() 
    Sqr6.draw() 
    Sqr7.draw() 
    Sqr8.draw()  

実試験の一部:

while True:  
if Timer.getTime() >= startLearn and Timer.getTime() <= startLearn + timeLearn. 
    drawLearn() 

if len(event.getKeys(['q'])) > 0: 
    break 

Wind.flip() 


Wind.close() 

はあなたの助け

更新をありがとう:私は320回のトライアルをテストしたいと、すべての裁判が描かれた8つの正方形で構成されています。 Atmの主な問題は、フレームごとに8つの四角形が描かれているのに対し、RealTrial-LoopではdrawLearn関数の間に一度描かれることです。

+1

もっと明確に質問を更新できますか?その後の試行中に何を提示するべきですか?一度だけ描画するには、ループの代わりに一度コードを実行してください。 –

+0

それを行いました。それは今より理解できますか? :) – DaveMSc

答えて

0

あなたのコードはすべての四角形を描画し、そのウィンドウを反転します。あなたはあなたがコーディングしているものを得ています。あなたがやりたいことは、一度描画してgetKeysをタイミングループに入れることでしょうか?たとえば、

drawLearn() 
Wind.flip() 
while True:  
if Timer.getTime() >= startLearn and Timer.getTime() <= startLearn + timeLearn. 
    if len(event.getKeys(['q'])) > 0: 
     break 
関連する問題