1

I am very new to programming in Vizard, but I am a pretty strong .js programmer. I have an art gallery and I want a man to walk from picture to picture. He needs to wait for a few seconds at each picture.

So I have a number of walking sequences and I'm trying to use the 'ontimer' function to call the next walk sequence and also add a few seconds of delay.

It works perfectly the first time it is called, in dostuff(), but doesn't work at all in dostuff2(). I assume I am using 'ontimer' incorrectly, could anyone explain where I am going wrong?

Any help or advice would be hugely appreciated!

walkOne = vizact.walkto(4, -0.5, 4)
turnOne = vizact.turn(60)
walking_sequence = vizact.sequence( [walkOne, turnOne])


walkTwo = vizact.walkto(5.350, -0.5, -2)
turnTwo = vizact.turn(60)
walking_sequenceTwo = vizact.sequence( [walkTwo, turnTwo])


def dostuff():  
    male.addAction(walking_sequence)
    vizact.ontimer(10,dostuff2)

def dostuff2():
    male.addAction(walking_sequenceTwo)
    print(vizact.ontimer)
    vizact.ontimer(20,dostuff)
Daft
  • 10,277
  • 15
  • 63
  • 105

1 Answers1

1

Cracked it!! Got rid of the ontimer completely and used waittimer instead, seems to work ok.

walkOne = vizact.walkto(4, -0.5, 4)
turnOne = vizact.turn(60)
walking_sequence = vizact.sequence(walkOne, turnOne, vizact.waittime(10))

walkTwo = vizact.walkto(5.350, -0.5, -2)
turnTwo = vizact.turn(60)
walking_sequenceTwo = vizact.sequence(walkTwo, turnTwo, vizact.waittime(10))

def dostuff():  
    male.addAction(walking_sequence)
    dostuff2()

def dostuff2():
    male.addAction(walking_sequenceTwo)
    dostuff3()
Daft
  • 10,277
  • 15
  • 63
  • 105