View Full Version : 'module' object is not callable???

11-19-2012, 04:39 PM
Hi there.:D
I am trying to do something seemingly simple. I want to have an avatar (steve) attached to different views and I am using the roboChase code in my own Player class (shown below). The class works fine if I run it but not when used as a module. More specifically, when I try to create a new Player object (p1=Player(viz.MainView)) then I get the following error:
Traceback (most recent call last):
File "<string>", line 2, in <module>
TypeError: 'module' object is not callable

Can you please let me know what is the problem? The error message is kind of cryptic! Also, is there a better way to do the same thing, like linking the avatar with the viewpoint (and avoiding the view through the robot's head)?

import viz
import steve

class Player():
"""This is the Avatar class"""
def __init__ (self, view):
self._view = view
self._player_matrix = viz.addGroup() #self.view.getMatrix()
self._avatar = steve.Steve()
self._updateFunc = vizact.onupdate(0, self.Update)

def UpdatePlayer(self):
pos = self._view.getPosition(viz.VIEW_ORI)
quat= self._view.getQuat(viz.VIEW_ORI)

def Update(self):
vizact.ontimer(0, self.UpdatePlayer)

11-20-2012, 04:27 PM
Can you post some example code where you import the module, create the Player object and get the error? The following worked fine for me. The only change I made to the module code was import the vizact library.
import viz
import PlayerModule


Yes, it's possible to link the avatar to the viewpoint and then offset the avatar from the viewpoint using a link operator.

11-21-2012, 10:48 AM
Thanks a lot Jeff,

it was eventually my carelessness, since I was using another class name not residing in the module:D

The linking works fine besides the fact that I can't get rid of the robot in the first person view, so it collides with the viewpoint and sends it to outer space! I am using the 'renderOnlyToWindows' command but it doesn't work, I assume because of the linking. If, on the other hand, I get rid of the view collision, then I can get through walls which is undesirable. What's the solution in such cases?

I have a similar problem with a hand cursor I have linked with the view in 3D space (not screen) which is offset 0.2m in front of the view and the view collides on it only when I am moving straight in one of the 4 directions. The only solution I found was to set the collisionBuffer() to zero, but then whenever I am too close to objects the cursor disappears behind them. Also collideNone() applied to the hand object doesn't resolve the problem.

Isn't there a way in both these cases to reset the collision of the object, so that it doesn't collide with the viewpoint?!? It seems such an easy fix but still...:confused:

Thanks a lot for your feedback!