theuberk
01-09-2008, 06:42 AM
Hi,
I'm trying to make custom class called car a subclass of the VizNode class, but I'm having a few problems. Here is the main part of my constructor for the car class:
class Car(viz.VizNode):
def __init__(self, direction = "right", id = sys.carID):
randomCar = random.randint(1,14)
if (randomCar == 10):
randomCar += 1
if (randomCar > 10):
self.tempCar = viz.add( "cars\car_" + str(randomCar) + ".ive" )
else:
self.tempCar = viz.add( "cars\car_0" + str(randomCar) + ".ive" )
viz.VizNode.__init__( self, self.tempCar.id )
The problem lies in that I cannot seem to manipulate any of the fields present in the VizNode class from outside the car class. For example:
If I add the following code to the car constructor:
self.tempCar.collideBox()
self.tempCar.setVelocity([10,0,0])
the car will fall and move along the x-axis at 10units/s
however, if I type the following code outside of the car class:
viz.go()
viz.phys.enable()
car = Car()
car.collideBox()
car.setVelocity([100,0,0])
I get the following error:
Cannot collideBox with invalid bounding box
collideBox is not the only method that does not work. I've also tried methods like car.setPosition(10,0,0) which also does not do anything.
Any ideas?
I'm trying to make custom class called car a subclass of the VizNode class, but I'm having a few problems. Here is the main part of my constructor for the car class:
class Car(viz.VizNode):
def __init__(self, direction = "right", id = sys.carID):
randomCar = random.randint(1,14)
if (randomCar == 10):
randomCar += 1
if (randomCar > 10):
self.tempCar = viz.add( "cars\car_" + str(randomCar) + ".ive" )
else:
self.tempCar = viz.add( "cars\car_0" + str(randomCar) + ".ive" )
viz.VizNode.__init__( self, self.tempCar.id )
The problem lies in that I cannot seem to manipulate any of the fields present in the VizNode class from outside the car class. For example:
If I add the following code to the car constructor:
self.tempCar.collideBox()
self.tempCar.setVelocity([10,0,0])
the car will fall and move along the x-axis at 10units/s
however, if I type the following code outside of the car class:
viz.go()
viz.phys.enable()
car = Car()
car.collideBox()
car.setVelocity([100,0,0])
I get the following error:
Cannot collideBox with invalid bounding box
collideBox is not the only method that does not work. I've also tried methods like car.setPosition(10,0,0) which also does not do anything.
Any ideas?