diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-10-29 14:26:44 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-10-29 14:26:44 +0300 |
commit | 6f1e9a843ee3ef0a3c51155237c41e88481d2919 (patch) | |
tree | b4a74a8ac24d45714a91bf42c4ee982e8aecc628 /release/scripts/templates/gamelogic.py | |
parent | e14a8635cca97f339d28744624cf1284866bc63d (diff) |
Script templates, including game logic scripts from 2.4x and new operator template.
Files copied into scripts/templates will automatically appear in the menu.
the operator template is a bit rough but a start.
Diffstat (limited to 'release/scripts/templates/gamelogic.py')
-rw-r--r-- | release/scripts/templates/gamelogic.py | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/release/scripts/templates/gamelogic.py b/release/scripts/templates/gamelogic.py new file mode 100644 index 00000000000..af9dbd8a56a --- /dev/null +++ b/release/scripts/templates/gamelogic.py @@ -0,0 +1,78 @@ +# This script must be assigned to a python controller +# where it can access the object that owns it and the sensors/actuators that it connects to. + +# GameLogic has been added to the global namespace no need to import + +# for keyboard event comparison +# import GameKeys + +# support for Vector(), Matrix() types and advanced functions like AngleBetweenVecs(v1,v2) and RotationMatrix(...) +# import Mathutils + +# for functions like getWindowWidth(), getWindowHeight() +# import Rasterizer + +def main(): + cont = GameLogic.getCurrentController() + + # The KX_GameObject that owns this controller. + own = cont.owner + + # for scripts that deal with spacial logic + own_pos = own.worldPosition + + + # Some example functions, remove to write your own script. + # check for a positive sensor, will run on any object without errors. + print 'Logic info for KX_GameObject', own.name + input = False + + for sens in cont.sensors: + # The sensor can be on another object, we may want to use it + own_sens = sens.owner + print ' sensor:', sens.name, + if sens.positive: + print '(true)' + input = True + else: + print '(false)' + + for actu in cont.actuators: + # The actuator can be on another object, we may want to use it + own_actu = actu.owner + print ' actuator:', actu.name + + # This runs the actuator or turns it off + # note that actuators will continue to run unless explicitly turned off. + if input: + cont.activate(actu) + else: + cont.deactivate(actu) + + # Its also good practice to get sensors and actuators by name + # rather then index so any changes to their order wont break the script. + + # sens_key = cont.sensors['key_sensor'] + # actu_motion = cont.actuators['motion'] + + + # Loop through all other objects in the scene + sce = GameLogic.getCurrentScene() + print 'Scene Objects:', sce.name + for ob in sce.objects: + print ' ', ob.name, ob.worldPosition + + + # Example where collision objects are checked for their properties + # adding to our objects "life" property + """ + actu_collide = cont.sensors['collision_sens'] + for ob in actu_collide.objectHitList: + # Check to see the object has this property + if ob.has_key('life'): + own['life'] += ob['life'] + ob['life'] = 0 + print own['life'] + """ + +main() |