![]() |
|
#1
|
|||
|
|||
![]()
I have this bit of code that I am using from the duckcourt example. I can't find anything on the help that deals with collidesphere. Where did that come from and what does it mean.
Thanks Code:
#Enable collisions with the ball based on a sphere shape ball.collidesphere(0.25) ball.isTarget = 0 collidables.append(ball) |
#2
|
|||
|
|||
Hi,
The command tells Vizard to use a sphere with radius 0.25 when checking collisions with the objects using the collidingwith command. The collide functions are currently undocumented. Let me know if you want more information. |
#3
|
|||
|
|||
I was wondering if you could help me out. I'm trying to add an animation where, if I click on an avatar, it falls to the ground and disappears. I got the falling part down, but I added the fadeReset sequence to try and delay the disappearing and it doesn't work out. Any ideas?
Code:
def onmousedown(button): if button == viz.MOUSEBUTTON_LEFT: node = viz.pick() #Get object that was clicked if node in avatars: #Check if object is one of the avatars node.clear(viz.ALL) node.clear(viz.CURRENT_ACTION) node.execute(7) #Execute the "shot" animation #Create action to wait for the animation duration then freeeze the avatar WaitThenFreeze = vizact.sequence( vizact.waittime(node.getduration(7)-.139), vizact.speed_node(0)) fadeReset = vizact.sequence(vizact.waittime(5),node.remove()) #vizact.sequence(vizact.waittime(2),avatars.remove(male),1) node.add(WaitThenFreeze) #Add the action to the avatar node.add(fadeReset) |
#4
|
|||
|
|||
Hi,
The problem is that you are calling node.remove(). This function will immediately delete the object. In this example you need to create an action that will remove the node. Use the following code instead: Code:
fadeReset = vizact.sequence(vizact.waittime(5),vizact.call(node.remove)) |
#5
|
|||
|
|||
I think it's working out but I do get some traceback errors. Here is the code:
Code:
def onmousedown(button): global i if button == viz.MOUSEBUTTON_LEFT: node = viz.pick() #Get object that was clicked if node in avatars: #Check if object is one of the avatars node.clear(viz.ALL) node.clear(viz.CURRENT_ACTION) node.execute(7) #Execute the "shot" animation #Create action to wait for the animation duration then freeeze the avatar WaitThenFreeze = vizact.sequence( vizact.waittime(node.getduration(7)-.14), vizact.speed_node(0)) #vizact.sequence(vizact.waittime(2),avatars.remove(male),1) node.clear(viz.ALL) node.clear(viz.CURRENT_ACTION) node.add(WaitThenFreeze) #Add the action to the avatar node.clear(viz.ALL) node.clear(viz.CURRENT_ACTION) fadeReset = vizact.sequence(vizact.waittime(1),vizact.call(node.remove)) node.add(fadeReset) i = 2; Code:
Traceback (most recent call last): File "C:\Program Files\Vizard25\viz.py", line 5916, in mytimer curAction.update(elaps,curAction._obj_) File "C:\Program Files\Vizard25\vizact.py", line 653, in update self.checkaction(object) File "C:\Program Files\Vizard25\vizact.py", line 629, in checkaction __endAction__(object,self.curAction) File "C:\Program Files\Vizard25\vizact.py", line 219, in __endAction__ object._action.notifyEndAction(action._obj_,action._actiondata_.callbackData,action._pool_) AttributeError: 'int' object has no attribute 'notifyEndAction' |
#6
|
|||
|
|||
Hi,
Try the following instead: Code:
node.add(vizact.waittime(1)) node.add(vizact.call(node.remove)) |
![]() |
|
|