|
#1
|
|||
|
|||
iteration over non-sequence error
This is another noobie question, but whenever I activate what should be the car's driving path, i get a iteration over non-sequence error and I'm not sure how to fix it.
Code:
import viz import math import vizmat import vizinfo import vizact from lookingat import LookingAt viz.go() #adds the ppt #PORT_PPT = 1 #ppt = viz.add('vizppt.dls') #ppt.command(3,"",1,1,5) #scales ppt tracking on xyz axis #collisions on viz.collision(viz.ON) view = viz.get(viz.MAIN_VIEWPOINT) view.rotate(0,1,0,90) #gonna comment out the collision for now, it's registering when the avatar touches #ground as a collision #This function is called when a collision occurs def mycollision(info): print 'Collided' #Create a callback for a collision event viz.callback(viz.COLLISION_EVENT, mycollision) #PORT_INTERSENSE = 2 #isense = viz.add('intersense.dls') #tracker = viz.add('intersense.dls') #viz.tracker() #tracker.reset() def mykeyboard(key): #If the R key is pressed, reset the head orientation if key in ['r','R']: tracker.reset() #Create a keyboard callback viz.callback(viz.KEYBOARD_EVENT,mykeyboard) #Add the street and drop it a little bit to be below the avatars feet. street = viz.add('objects/bspcity.bsp') street.translate(0,-.2,0) males = [] females = [] walking = [] whichturn = 0 #List the timers. WALKING = 0 DRIVING = 1 BLINDLOOK = 2 MALEMEETING = 3 FEMALEMEETING = 4 SITTINGWOMAN=5 FREEZESITTER=6 THROWINGMAN =7 HOLDVIEW = 8 TIMING = 9 #Add the heads for the males. maleheads = ['Male/heads/M-015-2L.vzf','Male/heads/M-056L.vzf', 'Male/heads/M-063L.vzf'] femaleheads = [] bodyparts = ['male_legs.cmx','male_torso_LS.cmx','male_shoes.cmx'] maleclothes = ['Male/clothes/male1.jpg','Male/clothes/male2.jpg','Male/clothes/male3.jpg'] #Make some avatars. for i in range(3): male = viz.add('male.cfg') male.translate(i,0,0) male.visible(0,'male_head.cmx') male.face(maleheads[i]) clothes = viz.add(maleclothes[i]) for j in bodyparts: male.texture(clothes,j) males.append(male) for i in range(2): female = viz.add('female.cfg') female.translate(i,0,0) females.append(female) #Set up paramters for walking guy. males[0].translate(0,0,-5) males[0].rotate(0,1,0,-90) males[0].whichturn = 0 males[0].set = [[1.5,0,-5],[1.5,0,15],[5,0,15],[-5,0,-5]] males[0].end = 4 males[0].state(1) walking.append(males[0]) #Set up paramters for walking girl. females[0].translate(1,0,-7) females[0].rotate(0,1,0,-90) females[0].whichturn = 0 females[0].set = [[1.5,0,0],[1,0,15],[2,0,15],[-5,0,-5]] females[0].end = 4 females[0].state(1) walking.append(females[0]) #Add car. car = viz.add('mini.osgx') #set car stuff car.translate(-1.5,0,8) car.rotate(0,1,0,180) #set car path path = viz.add(viz.ANIMATION_PATH) positions = [[-1.5,0,8],[-1.5,0,0],[-1.5,0,-3]] for x in range(0,len(positions)): cp = viz.add(viz.CONTROL_POINT) cp.setPosition(positions[x]) path.add(cp,x+1) path.constantspeed(viz.ON,1) path.loop(viz.LOOP) path.translatemode(viz.BEZIER) path.setAutoRotate(viz.ON) car.link(path) #Set up for meeting. males[1].translate(-9,0,21) females[1].translate(2,0,7) females[1].state(1) malemoves = [2,2,4,4,2,4,4,4,4,4,4,2,2,12] femalemoves = [6,5,12,12,1] females[1].rotate(0,1,0,-55) males[1].rotate(0,1,0,135) males[1].state(1) #Set up for throwing man. males[2].translate(11,0,7) males[2].state(1) #Set up for timing. timebomb = 0 def onkeydown(key): if key == '0': viz.starttimer(WALKING, .1, viz.PERPETUAL) if key == '2': females[1].addAction(6) males[1].goto(1.6,0,7.7) females[1].spinto(0,1,0,-55) females[1].state(12) viz.starttimer(MALEMEETING,.1) viz.starttimer(FEMALEMEETING,.1) if key == '7': viz.starttimer(DRIVING,.1) if key == '4': viz.starttimer(THROWINGMAN,.1) if key == 's': print 's' viz.starttimer(TIMING,1, viz.PERPETUAL) def ontimer(num): global gravity, timebomb if num == WALKING: for agent in walking: agentposition = agent.get(viz.POSITION) agentgap = vizmat.Distance(agentposition, agent.set[agent.whichturn]) if agentgap < .1: agent.whichturn += 1 agent.state(1) if agent.whichturn == agent.end: agent.whichturn = 0 walk = vizact.walkto(agent.set[agent.whichturn][0],agent.set[agent.whichturn][1],agent.set[agent.whichturn][2]) agent.addAction(walk) if num == DRIVING: for agent in DRIVING: path.play() if num == MALEMEETING: if len(malemoves)>1: animation = malemoves.pop(0) duration = males[1].getduration(animation) males[1].execute(animation) viz.starttimer(MALEMEETING, duration-.15) else: animation = malemoves.pop(0) males[1].state(animation) if num == FEMALEMEETING: if len(femalemoves)>1: animation = femalemoves.pop(0) duration = females[1].getduration(animation) females[1].execute(animation) viz.starttimer(FEMALEMEETING, duration-.15) else: animation = femalemoves.pop(0) females[1].state(animation) if num == THROWINGMAN: males[2].execute(9) males[2].execute(1) viz.starttimer(THROWINGMAN, 10) if num == HOLDVIEW: view.translate(-8.5,1.5,-2) if num == TIMING: print timebomb timebomb += 1 if timebomb == 1: onkeydown('0') elif timebomb == 3: onkeydown('4') elif timebomb == 10: onkeydown('2') elif timebomb == 20: onkeydown('3') elif timebomb == 30: onkeydown('1') elif timebomb == 80: viz.quit() viz.callback(viz.TIMER_EVENT,ontimer) viz.callback(viz.KEYDOWN_EVENT,onkeydown) viz.starttimer(HOLDVIEW,.001, viz.PERPETUAL) |
#2
|
|||
|
|||
Can you post the Python traceback error message? Python error messages usually tell you the exact line of code that caused the error and the reason for the error.
|
#3
|
|||
|
|||
Here's the error
Traceback (most recent call last): File "fixin' streetscene.py", line 199, in ontimer for agent in DRIVING: TypeError: iteration over non-sequence it tells me where the problem is, but I don't know how to fix it. |
#4
|
|||
|
|||
The error says you are iterating over an object which is not a list or sequence. It's occurring on the line "for agent in DRIVING:"
Looking at your code, the variable DRIVING is being assigned an integer value, which is not a list or sequence. You need to fix that line of code so it iterates over a list or sequence object. |
Thread Tools | |
Display Modes | Rate This Thread |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Error when loading a lot of avatars | dan12345 | Vizard | 7 | 07-28-2008 04:24 AM |
Error Message | Jerhy | Vizard | 1 | 02-28-2006 01:59 PM |
Error Tracking | Vygreif | Vizard | 1 | 10-03-2005 04:50 PM |
Error when playing wav files...? | vjonshih | Vizard | 1 | 05-23-2005 12:21 PM |
The error window that couldn't | FlyingWren | Vizard | 2 | 12-02-2003 08:23 AM |