af9dbd8a56aeb6f30ce76777d12fd3f8b7031a8a
[blender-staging.git] / release / scripts / templates / gamelogic.py
1 # This script must be assigned to a python controller
2 # where it can access the object that owns it and the sensors/actuators that it connects to.
3
4 # GameLogic has been added to the global namespace no need to import
5
6 # for keyboard event comparison
7 # import GameKeys 
8
9 # support for Vector(), Matrix() types and advanced functions like AngleBetweenVecs(v1,v2) and RotationMatrix(...)
10 # import Mathutils 
11
12 # for functions like getWindowWidth(), getWindowHeight()
13 # import Rasterizer
14
15 def main():
16         cont = GameLogic.getCurrentController()
17         
18         # The KX_GameObject that owns this controller.
19         own = cont.owner
20         
21         # for scripts that deal with spacial logic
22         own_pos = own.worldPosition
23         
24         
25         # Some example functions, remove to write your own script.
26         # check for a positive sensor, will run on any object without errors.
27         print 'Logic info for KX_GameObject', own.name
28         input = False
29         
30         for sens in cont.sensors:
31                 # The sensor can be on another object, we may want to use it
32                 own_sens = sens.owner
33                 print '    sensor:', sens.name,
34                 if sens.positive:
35                         print '(true)'
36                         input = True
37                 else:
38                         print '(false)'
39         
40         for actu in cont.actuators:
41                 # The actuator can be on another object, we may want to use it
42                 own_actu = actu.owner
43                 print '    actuator:', actu.name
44                 
45                 # This runs the actuator or turns it off
46                 # note that actuators will continue to run unless explicitly turned off.
47                 if input:
48                         cont.activate(actu)
49                 else:
50                         cont.deactivate(actu)
51         
52         # Its also good practice to get sensors and actuators by name
53         # rather then index so any changes to their order wont break the script.
54         
55         # sens_key = cont.sensors['key_sensor']
56         # actu_motion = cont.actuators['motion']
57         
58         
59         # Loop through all other objects in the scene
60         sce = GameLogic.getCurrentScene()
61         print 'Scene Objects:', sce.name
62         for ob in sce.objects:
63                 print '   ', ob.name, ob.worldPosition
64         
65         
66         # Example where collision objects are checked for their properties
67         # adding to our objects "life" property
68         """
69         actu_collide = cont.sensors['collision_sens']
70         for ob in actu_collide.objectHitList:
71                 # Check to see the object has this property
72                 if ob.has_key('life'):
73                         own['life'] += ob['life']
74                         ob['life'] = 0
75         print own['life']
76         """
77
78 main()