Author: JaroslawTworek Date: 2008-01-14 00:49:44 +0000 (Mon, 14 Jan 2008) New Revision: 774
Added: trunk/pysoy/examples/steel_billboard.py Log: Created simple showcase of billboard class Added: trunk/pysoy/examples/steel_billboard.py =================================================================== --- trunk/pysoy/examples/steel_billboard.py (rev 0) +++ trunk/pysoy/examples/steel_billboard.py 2008-01-14 00:49:44 UTC (rev 774) @@ -0,0 +1,86 @@ +#!/usr/bin/env python + +import soy +from time import sleep + +class MyAppController(soy.controllers.Keyboard): + def __init__(self, window): + soy.controllers.Keyboard.__init__(self,window) + def _eventKeyDown(self, _cde, _sym) : + print "Key down %s" % str(_cde) + + def _eventKeyUp(self, _cde, _sym) : + print "Key up %s" % str(_cde) + + +def main(): + sce = soy.Scene() + + cam = soy.bodies.Camera(sce) + cam.position = (0.0, 0.0, 10.0) + + def camera_impl_move( vec): + def move_camera(): + cam.position = (cam.position[0] + vec[0], cam.position[1] + vec[1], cam.position[2] + vec[2]) + return move_camera + + def camera_set_rot( vec): + def rot_camera(): + cam.rotation = vec + return rot_camera + + + + lig = soy.bodies.lights.Light(sce) + lig.position = (-10.0,10.0,2.0) + + axis = soy.meshes.Axis() + bil = soy.meshes.Billboard(material=soy.materials.StainlessSteel()) + axis_b = soy.bodies.Body(sce, mesh= bil ) + + + def multiply_size( mul): + def m(): + st = bil.size + bil.size = ( st[0]*mul[0], st[1]*mul[1]) + return m + + scr = soy.Screen() + win = soy.Window(scr, 'Billboard example', background=soy.colors.Black(), + size=(1024,768)) + + pro = soy.widgets.Projector(win, camera=cam) + + my_con = MyAppController(win) + + key = soy.controllers.Keyboard(win) + key['q'] = soy.actions.Quit() + key[ 1 ] = soy.actions.Quit() # 9 = esc key + + + key['w'] = camera_impl_move( (0,0,-0.1) ) + key['s'] = camera_impl_move( (0,0,0.1) ) + + key['a'] = camera_impl_move( (-0.1,0,0) ) + key['d'] = camera_impl_move( (0.1,0,0) ) + + key['z'] = camera_set_rot( (0, 0.3, 0)) + key['x'] = camera_set_rot( (0, 0, 0)) + key['c'] = camera_set_rot( (0, -0.3, 0)) + + key['r'] = multiply_size( (1.1,1.0)) + key['f'] = multiply_size( (1.0/1.1,1.0)) + + key['t'] = multiply_size( (1.0,1.1)) + key['g'] = multiply_size( (1.0,1.0/1.1)) + + + + wcn = soy.controllers.Window(win) + wcn['close'] = soy.actions.Quit() + + while True: + sleep(.1) + +if __name__=='__main__': + main() Property changes on: trunk/pysoy/examples/steel_billboard.py ___________________________________________________________________ Name: svn:executable + * _______________________________________________ PySoy-SVN mailing list [email protected] http://www.pysoy.org/mailman/listinfo/pysoy-svn
