Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2008-09-10 07:34:08 +0400
committerCampbell Barton <ideasman42@gmail.com>2008-09-10 07:34:08 +0400
commitecc5bdb8d72aca5199de6a69b4b6c493f0191d51 (patch)
tree9674b670c57fba71a7dfafb3b1a9b162e48dd870 /release
parenteaf84d2c25c0b70b0a71fe042c8b559a3a504418 (diff)
2 gamelogic templates, one with example functions and comments, another minimal template for those who know the api.
Diffstat (limited to 'release')
-rw-r--r--release/scripts/scripttemplate_gamelogic.py93
-rw-r--r--release/scripts/scripttemplate_gamelogic_basic.py33
2 files changed, 126 insertions, 0 deletions
diff --git a/release/scripts/scripttemplate_gamelogic.py b/release/scripts/scripttemplate_gamelogic.py
new file mode 100644
index 00000000000..17095251155
--- /dev/null
+++ b/release/scripts/scripttemplate_gamelogic.py
@@ -0,0 +1,93 @@
+#!BPY
+"""
+Name: 'GameLogic Example'
+Blender: 245
+Group: 'ScriptTemplate'
+Tooltip: 'Script template with examples of how to use game logic'
+"""
+
+from Blender import Window
+import bpy
+
+script_data = \
+'''
+# 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.getOwner()
+
+ # for scripts that deal with spacial logic
+ own_pos = own.getPosition()
+
+
+ # 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.getName()
+ input = False
+
+ for sens in cont.getSensors():
+ # The sensor can be on another object, we may want to use it
+ own_sens = sens.getOwner()
+ print ' sensor:', sens.getName(),
+ if sens.isPositive():
+ print '(true)'
+ input = True
+ else:
+ print '(false)'
+
+ for actu in cont.getActuators():
+ # The actuator can be on another object, we may want to use it
+ own_actu = actu.getOwner()
+ print ' actuator:', sens.getName()
+
+ # This runs the actuator or turns it off
+ # note that actuators will continue to run unless explicitly turned off.
+ if input:
+ GameLogic.addActiveActuator(actu, True)
+ else:
+ GameLogic.addActiveActuator(actu, False)
+
+ # Its also good practice to get sensors and actuators by names
+ # so any changes to their order wont break the script.
+
+ # sens_key = cont.getSensor('key_sensor')
+ # actu_motion = cont.getActuator('motion')
+
+
+ # Loop through all other objects in the scene
+ sce = GameLogic.getCurrentScene()
+ print 'Scene Objects:', sce.getName()
+ for ob in sce.getObjectList():
+ print ' ', ob.getName(), ob.getPosition()
+
+
+ # Example where collision objects are checked for their properties
+ # adding to our objects "life" property
+ """
+ actu_collide = cont.getSensor('collision_sens')
+ for ob in actu_collide.getHitObjectList():
+ # Check to see the object has this property
+ if hasattr(ob, 'life'):
+ own.life += ob.life
+ ob.life = 0
+ print own.life
+ """
+main()
+'''
+
+new_text = bpy.data.texts.new('gamelogic_example.py')
+new_text.write(script_data)
+bpy.data.texts.active = new_text
+Window.RedrawAll()
diff --git a/release/scripts/scripttemplate_gamelogic_basic.py b/release/scripts/scripttemplate_gamelogic_basic.py
new file mode 100644
index 00000000000..dfd52a9f749
--- /dev/null
+++ b/release/scripts/scripttemplate_gamelogic_basic.py
@@ -0,0 +1,33 @@
+#!BPY
+"""
+Name: 'GameLogic Template'
+Blender: 245
+Group: 'ScriptTemplate'
+Tooltip: 'Basic template for new game logic scripts'
+"""
+
+from Blender import Window
+import bpy
+
+script_data = \
+'''
+def main():
+
+ cont = GameLogic.getCurrentController()
+ own = cont.getOwner()
+
+ sens = cont.getSensor('mySensor')
+ actu = cont.getActuator('myActuator')
+
+ if sens.isPositive():
+ GameLogic.addActiveActuator(actu, True)
+ else:
+ GameLogic.addActiveActuator(actu, False)
+
+main()
+'''
+
+new_text = bpy.data.texts.new('gamelogic_example.py')
+new_text.write(script_data)
+bpy.data.texts.active = new_text
+Window.RedrawAll()