rendered paste bodyimport sys, os, os.path, soya, soya.sdlconstsoya.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+=1def 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.0soya.set_root_widget(camera)# Main loopsoya.Idler(scene).idle()# TODO / exercice : turn this demo into a puzzle game !