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:
Diffstat (limited to 'release/scripts/templates_py/gamelogic.py')
-rw-r--r--release/scripts/templates_py/gamelogic.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/release/scripts/templates_py/gamelogic.py b/release/scripts/templates_py/gamelogic.py
new file mode 100644
index 00000000000..01ac27c56cd
--- /dev/null
+++ b/release/scripts/templates_py/gamelogic.py
@@ -0,0 +1,73 @@
+# 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.
+
+import bge
+
+# support for Vector(), Matrix() types and advanced functions like Matrix.Scale(...) and Matrix.Rotation(...)
+# import mathutils
+
+# for functions like getWindowWidth(), getWindowHeight()
+# import Rasterizer
+
+
+def main():
+ cont = bge.logic.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, end=" ")
+ 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 = bge.logic.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 "life" in ob:
+ own["life"] += ob["life"]
+ ob["life"] = 0
+ print(own["life"])
+ """
+
+main()