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

scripttemplate_gamelogic.py « scripts « release - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 7184d7e424fcf3e2344660c2b2e1661d1b7fb5ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!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()