Oh right, and fix the same for initializing the Body!

soya.Body.__init__(self, parent, soya.cube.Cube(soya.Body, color))

On Mon, Apr 14, 2008 at 1:29 PM, snaipperi <[EMAIL PROTECTED]> wrote:
> The constructor of a class must be "__init__", not "_init_"
>
>  .class Cube(soya.Body):
>
> .
>  .   #Constructor
>  .   def __init__(self, parent):
>
>  That should fix it,
>  Matti
>
>
>
>  On Mon, Apr 14, 2008 at 7:01 AM, g p <[EMAIL PROTECTED]> wrote:
>  > I've been having problems animating rotation. I modelled my simple program
>  > after the tutorial with the rotating sword. I played around with it a 
> little
>  > bit more, but still can't get it work.
>  >
>  > In my program, I'm trying to spin a cube:
>  >
>  > #Soya initialization
>  > import sys, os, os.path, random, soya, soya.cube
>  > soya.init("Cube Test")
>  >
>  > # Emissive color of the cube
>  > color = soya.Material()
>  > color.emissive = (1.0, 0.0, 0.0, 0.0)
>  >
>  >  # World creation
>  > scene = soya.World()
>  >
>  > # Classes
>  > class Cube(soya.Body):
>  >
>  >    #Constructor
>  >    def _init_(self, parent):
>  >
>  >       soya.Body._init_(self, parent, soya.cube.Cube(soya.Body, color))
>  >
>  >       self.speed = soya.Vector(self, 0.0, 0.0, -0.2)
>  >
>  >
>  >       #rotation speed around y axis
>  >       self.rotation_speed = 0.0
>  >
>  >    def begin_round(self):
>  >
>  >       soya.Body.begin_round(self)
>  >        self.rotation_speed = random.uniform(-25.0, 25.0) #computes the new
>  > rotation speed
>  >                         #as a random angle between -25 and 25 degrees
>  >
>  >    def advance_time(self, proportion):
>  >       soya.Body.advance_time(self, proportion)
>  >
>  >       self.rotate_y(proportion * self.rotation_speed)
>  >
>  >       self.add_mul_vector(proportion, self.speed)
>  >
>  > #creates a cube
>  > cube1 = Cube(scene)
>  >
>  > # Camera setup
>  > camera = soya.Camera(scene)
>  > camera.set_xyz(0.0, 0.0, 4.0)
>  >  camera.fov = 100.0
>  > soya.set_root_widget(camera)
>  >
>  > # Main
>  > soya.MainLoop(scene).main_loop()
>  >
>  >
>  > This program creates a window, but doesn't render anything, and then ends
>  > with an error. Here is the error:
>  >  line 37, in advance_time
>  >     self.add_mul_vector(proportion, self.speed)
>  > AttributeError: 'Cube' object has no attribute 'speed'
>  > * Soya3D * Quit...
>  >
>  >
>  > any insight would be great!
>  >
>  > _______________________________________________
>  >  Soya-user mailing list
>  >  Soya-user@gna.org
>  >  https://mail.gna.org/listinfo/soya-user
>  >
>  >
>

_______________________________________________
Soya-user mailing list
Soya-user@gna.org
https://mail.gna.org/listinfo/soya-user

Reply via email to