74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # 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()
 |