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

Reply via email to