import sys, os, os.path, soya, soya.sdlconst soya.init() soya.path.append(os.path.join(os.path.dirname(sys.argv[0]), "data")) scene = soya.World() class SomeWorld(soya.World): lastclick=() def __init__(self, parent): soya.World.__init__(self, parent) def begin_round(self): soya.World.begin_round(self) for event in soya.process_event(): if event[0] == soya.sdlconst.MOUSEBUTTONDOWN: if self.lastclick==(): self.lastclick=(event[2], event[3]) else: drawline(event[2], event[3], self.lastclick[0], self.lastclick[1]) self.lastclick=(event[2], event[3]) if event[0] == soya.sdlconst.KEYDOWN: if (event[1] == soya.sdlconst.K_z): camera.z+=1 def drawline(a, b, c, d): print a, b, c, d soya.Face(soya.World(scene), [soya.Vertex(soya.World(scene), a, b, 0.0), soya.Vertex(soya.World(scene), c, d, 0.0), ]) drawline(279, 200, 300, 600) world = SomeWorld(scene) # Adds a light. light = soya.Light(scene) light.set_xyz(0.0, 0.0, 1.0) # Creates a camera. camera = soya.Camera(scene) camera.set_xyz(0.0, 0.0, 4.0) camera.fov = 100.0 soya.set_root_widget(camera) # Main loop soya.Idler(scene).idle() # TODO / exercice : turn this demo into a puzzle game !