BGE: TrackTo actuator: increasing up & track axis options
[blender.git] / doc / python_api / rst / bge.logic.rst
1
2 Game Logic (bge.logic)
3 ======================
4
5 ************
6 Introduction
7 ************
8
9 Module to access logic functions, imported automatically into the python controllers namespace.
10
11 .. module:: bge.logic
12
13 .. code-block:: python
14
15    # To get the controller thats running this python script:
16    cont = bge.logic.getCurrentController() # bge.logic is automatically imported
17    
18    # To get the game object this controller is on:
19    obj = cont.owner
20
21 :class:`~bge.types.KX_GameObject` and :class:`~bge.types.KX_Camera` or :class:`~bge.types.KX_LightObject` methods are available depending on the type of object
22
23 .. code-block:: python
24
25    # To get a sensor linked to this controller.
26    # "sensorname" is the name of the sensor as defined in the Blender interface.
27    # +---------------------+  +--------+
28    # | Sensor "sensorname" +--+ Python +
29    # +---------------------+  +--------+
30    sens = cont.sensors["sensorname"]
31
32    # To get a sequence of all sensors:
33    sensors = co.sensors
34
35 See the sensor's reference for available methods:
36
37 .. hlist::
38    :columns: 3
39
40    * :class:`~bge.types.KX_MouseFocusSensor`
41    * :class:`~bge.types.KX_NearSensor`
42    * :class:`~bge.types.KX_NetworkMessageSensor`
43    * :class:`~bge.types.KX_RadarSensor`
44    * :class:`~bge.types.KX_RaySensor`
45    * :class:`~bge.types.KX_TouchSensor`
46    * :class:`~bge.types.SCA_DelaySensor`
47    * :class:`~bge.types.SCA_JoystickSensor`
48    * :class:`~bge.types.SCA_KeyboardSensor`
49    * :class:`~bge.types.SCA_MouseSensor`
50    * :class:`~bge.types.SCA_PropertySensor`
51    * :class:`~bge.types.SCA_RandomSensor`
52
53 You can also access actuators linked to the controller
54
55 .. code-block:: python
56
57    # To get an actuator attached to the controller:
58    #                          +--------+  +-------------------------+
59    #                          + Python +--+ Actuator "actuatorname" |
60    #                          +--------+  +-------------------------+
61    actuator = co.actuators["actuatorname"]
62    
63    # Activate an actuator
64    controller.activate(actuator)
65
66 See the actuator's reference for available methods
67
68 .. hlist::
69    :columns: 3
70    
71    * :class:`~bge.types.BL_ActionActuator`
72    * :class:`~bge.types.KX_CameraActuator`
73    * :class:`~bge.types.KX_ConstraintActuator`
74    * :class:`~bge.types.KX_GameActuator`
75    * :class:`~bge.types.KX_MouseActuator`
76    * :class:`~bge.types.KX_NetworkMessageActuator`
77    * :class:`~bge.types.KX_ObjectActuator`
78    * :class:`~bge.types.KX_ParentActuator`
79    * :class:`~bge.types.KX_SCA_AddObjectActuator`
80    * :class:`~bge.types.KX_SCA_DynamicActuator`
81    * :class:`~bge.types.KX_SCA_EndObjectActuator`
82    * :class:`~bge.types.KX_SCA_ReplaceMeshActuator`
83    * :class:`~bge.types.KX_SceneActuator`
84    * :class:`~bge.types.KX_SoundActuator`
85    * :class:`~bge.types.KX_StateActuator`
86    * :class:`~bge.types.KX_TrackToActuator`
87    * :class:`~bge.types.KX_VisibilityActuator`
88    * :class:`~bge.types.SCA_2DFilterActuator`
89    * :class:`~bge.types.SCA_PropertyActuator`
90    * :class:`~bge.types.SCA_RandomActuator`
91
92 Most logic brick's methods are accessors for the properties available in the logic buttons.
93 Consult the logic bricks documentation for more information on how each logic brick works.
94
95 There are also methods to access the current :class:`bge.types.KX_Scene`
96
97 .. code-block:: python
98
99    # Get the current scene
100    scene = bge.logic.getCurrentScene()
101
102    # Get the current camera
103    cam = scene.active_camera
104
105 Matricies as used by the game engine are **row major**
106 ``matrix[row][col] = float``
107
108 :class:`bge.types.KX_Camera` has some examples using matrices.
109
110 *********
111 Variables
112 *********
113
114 .. data:: globalDict
115
116    A dictionary that is saved between loading blend files so you can use it to store inventory and other variables you want to store between scenes and blend files.
117    It can also be written to a file and loaded later on with the game load/save actuators.
118
119    .. note:: only python built in types such as int/string/bool/float/tuples/lists can be saved, GameObjects, Actuators etc will not work as expected.
120
121 .. data:: keyboard
122
123    The current keyboard wrapped in an :class:`~bge.types.SCA_PythonKeyboard` object.
124
125 .. data:: mouse
126
127    The current mouse wrapped in an :class:`~bge.types.SCA_PythonMouse` object.
128
129 .. data:: joysticks
130
131    A list of attached :class:`~bge.types.SCA_PythonJoystick`.
132    The list size is the maximum number of supported joysticks.
133    If no joystick is available for a given slot, the slot is set to None.
134
135 *****************
136 General functions
137 *****************
138
139 .. function:: getCurrentController()
140
141    Gets the Python controller associated with this Python script.
142    
143    :rtype: :class:`bge.types.SCA_PythonController`
144
145 .. function:: getCurrentScene()
146
147    Gets the current Scene.
148    
149    :rtype: :class:`bge.types.KX_Scene`
150
151 .. function:: getSceneList()
152
153    Gets a list of the current scenes loaded in the game engine.
154    
155    :rtype: list of :class:`bge.types.KX_Scene`
156    
157    .. note:: Scenes in your blend file that have not been converted wont be in this list. This list will only contain scenes such as overlays scenes.
158
159 .. function:: loadGlobalDict()
160
161    Loads bge.logic.globalDict from a file.
162
163 .. function:: saveGlobalDict()
164
165    Saves bge.logic.globalDict to a file.
166
167 .. function:: startGame(blend)
168
169    Loads the blend file.
170    
171    :arg blend: The name of the blend file
172    :type blend: string
173
174 .. function:: endGame()
175
176    Ends the current game.
177
178 .. function:: restartGame()
179
180    Restarts the current game by reloading the .blend file (the last saved version, not what is currently running).
181    
182 .. function:: LibLoad(blend, type, data, load_actions=False, verbose=False, load_scripts=True, async=False)
183    
184    Converts the all of the datablocks of the given type from the given blend.
185    
186    :arg blend: The path to the blend file (or the name to use for the library if data is supplied)
187    :type blend: string
188    :arg type: The datablock type (currently only "Action", "Mesh" and "Scene" are supported)
189    :type type: string
190    :arg data: Binary data from a blend file (optional)
191    :type data: bytes
192    :arg load_actions: Search for and load all actions in a given Scene and not just the "active" actions (Scene type only)
193    :type load_actions: bool
194    :arg verbose: Whether or not to print debugging information (e.g., "SceneName: Scene")
195    :type verbose: bool
196    :arg load_scripts: Whether or not to load text datablocks as well (can be disabled for some extra security)
197    :type load_scripts: bool   
198    :arg async: Whether or not to do the loading asynchronously (in another thread). Only the "Scene" type is currently supported for this feature.
199    :type async: bool
200    
201    :rtype: :class:`bge.types.KX_LibLoadStatus`
202
203    .. note:: Asynchronously loaded libraries will not be available immediately after LibLoad() returns. Use the returned KX_LibLoadStatus to figure out when the libraries are ready.
204    
205 .. function:: LibNew(name, type, data)
206
207    Uses existing datablock data and loads in as a new library.
208    
209    :arg name: A unique library name used for removal later
210    :type name: string
211    :arg type: The datablock type (currently only "Mesh" is supported)
212    :type type: string
213    :arg data: A list of names of the datablocks to load
214    :type data: list of strings
215    
216 .. function:: LibFree(name)
217
218    Frees a library, removing all objects and meshes from the currently active scenes.
219
220    :arg name: The name of the library to free (the name used in LibNew)
221    :type name: string
222    
223 .. function:: LibList()
224
225    Returns a list of currently loaded libraries.
226    
227    :rtype: list [str]
228
229 .. function:: addScene(name, overlay=1)
230
231    Loads a scene into the game engine.
232
233    .. note::
234
235       This function is not effective immediately, the scene is queued
236       and added on the next logic cycle where it will be available
237       from `getSceneList`
238
239    :arg name: The name of the scene
240    :type name: string
241    :arg overlay: Overlay or underlay (optional)
242    :type overlay: integer
243
244 .. function:: sendMessage(subject, body="", to="", message_from="")
245
246    Sends a message to sensors in any active scene.
247    
248    :arg subject: The subject of the message
249    :type subject: string
250    :arg body: The body of the message (optional)
251    :type body: string
252    :arg to: The name of the object to send the message to (optional)
253    :type to: string
254    :arg message_from: The name of the object that the message is coming from (optional)
255    :type message_from: string
256
257 .. function:: setGravity(gravity)
258
259    Sets the world gravity.
260    
261    :type gravity: list [fx, fy, fz]
262
263 .. function:: getSpectrum()
264
265    Returns a 512 point list from the sound card.
266    This only works if the fmod sound driver is being used.
267    
268    :rtype: list [float], len(getSpectrum()) == 512
269
270 .. function:: getMaxLogicFrame()
271
272    Gets the maximum number of logic frames per render frame.
273    
274    :return: The maximum number of logic frames per render frame
275    :rtype: integer
276
277 .. function:: setMaxLogicFrame(maxlogic)
278
279    Sets the maximum number of logic frames that are executed per render frame.
280    This does not affect the physic system that still runs at full frame rate.   
281     
282    :arg maxlogic: The new maximum number of logic frames per render frame. Valid values: 1..5
283    :type maxlogic: integer
284
285 .. function:: getMaxPhysicsFrame()
286
287    Gets the maximum number of physics frames per render frame.
288    
289    :return: The maximum number of physics frames per render frame
290    :rtype: integer
291
292 .. function:: setMaxPhysicsFrame(maxphysics)
293
294    Sets the maximum number of physics timestep that are executed per render frame.
295    Higher value allows physics to keep up with realtime even if graphics slows down the game.
296    Physics timestep is fixed and equal to 1/tickrate (see setLogicTicRate)
297    maxphysics/ticrate is the maximum delay of the renderer that physics can compensate.
298     
299    :arg maxphysics: The new maximum number of physics timestep per render frame. Valid values: 1..5.
300    :type maxphysics: integer
301
302 .. function:: getLogicTicRate()
303
304    Gets the logic update frequency.
305    
306    :return: The logic frequency in Hz
307    :rtype: float
308
309 .. function:: setLogicTicRate(ticrate)
310
311    Sets the logic update frequency.
312    
313    The logic update frequency is the number of times logic bricks are executed every second.
314    The default is 60 Hz.
315    
316    :arg ticrate: The new logic update frequency (in Hz).
317    :type ticrate: float
318
319 .. function:: getPhysicsTicRate()
320
321    Gets the physics update frequency
322    
323    :return: The physics update frequency in Hz
324    :rtype: float
325    
326    .. warning: Not implimented yet
327
328 .. function:: setPhysicsTicRate(ticrate)
329
330    Sets the physics update frequency
331    
332    The physics update frequency is the number of times the physics system is executed every second.
333    The default is 60 Hz.
334    
335    :arg ticrate: The new update frequency (in Hz).
336    :type ticrate: float
337
338    .. warning: Not implimented yet
339
340 .. function:: getExitKey()
341
342    Gets the key used to exit the game engine
343
344    :return: The key (defaults to :mod:`bge.events.ESCKEY`)
345    :rtype: int
346
347 .. function:: setExitKey(key)
348
349    Sets the key used to exit the game engine
350
351    :arg key: A key constant from :mod:`bge.events`
352    :type key: int
353
354 .. function:: NextFrame()
355
356    Render next frame (if Python has control)
357
358 *****************
359 Utility functions
360 *****************
361
362 .. function:: expandPath(path)
363
364    Converts a blender internal path into a proper file system path.
365
366    Use / as directory separator in path
367    You can use '//' at the start of the string to define a relative path;
368    Blender replaces that string by the directory of the current .blend or runtime file
369    to make a full path name. The function also converts the directory separator to
370    the local file system format.
371
372    :arg path: The path string to be converted/expanded.
373    :type path: string
374    :return: The converted string
375    :rtype: string
376
377 .. function:: getAverageFrameRate()
378
379    Gets the estimated/average framerate for all the active scenes, not only the current scene.
380
381    :return: The estimated average framerate in frames per second
382    :rtype: float
383
384 .. function:: getBlendFileList(path = "//")
385
386    Returns a list of blend files in the same directory as the open blend file, or from using the option argument.
387
388    :arg path: Optional directory argument, will be expanded (like expandPath) into the full path.
389    :type path: string
390    :return: A list of filenames, with no directory prefix
391    :rtype: list
392
393 .. function:: getRandomFloat()
394
395    Returns a random floating point value in the range [0 - 1)
396
397 .. function:: PrintGLInfo()
398
399    Prints GL Extension Info into the console
400
401 .. function:: PrintMemInfo()
402
403    Prints engine statistics into the console
404
405 .. function:: getProfileInfo()
406
407    Returns a Python dictionary that contains the same information as the on screen profiler. The keys are the profiler categories and the values are tuples with the first element being time taken (in ms) and the second element being the percentage of total time.
408    
409 *********
410 Constants
411 *********
412
413 .. data:: KX_TRUE
414
415    True value used by some modules.
416
417 .. data:: KX_FALSE
418
419    False value used by some modules.
420
421 =======
422 Sensors
423 ======= 
424
425 .. _sensor-status:
426
427 -------------
428 Sensor Status
429 -------------
430
431 .. data:: KX_SENSOR_INACTIVE
432 .. data:: KX_SENSOR_JUST_ACTIVATED
433 .. data:: KX_SENSOR_ACTIVE
434 .. data:: KX_SENSOR_JUST_DEACTIVATED
435
436 ---------------
437 Armature Sensor
438 ---------------
439
440 .. _armaturesensor-type:
441
442 See :class:`bge.types.KX_ArmatureSensor.type`
443
444 .. data:: KX_ARMSENSOR_STATE_CHANGED
445
446   Detect that the constraint is changing state (active/inactive)
447
448   :value: 0
449   
450 .. data:: KX_ARMSENSOR_LIN_ERROR_BELOW
451
452   Detect that the constraint linear error is above a threshold
453   
454   :value: 1
455   
456 .. data:: KX_ARMSENSOR_LIN_ERROR_ABOVE
457
458   Detect that the constraint linear error is below a threshold
459
460   :value: 2
461   
462 .. data:: KX_ARMSENSOR_ROT_ERROR_BELOW
463
464   Detect that the constraint rotation error is above a threshold
465   
466   :value: 3
467   
468 .. data:: KX_ARMSENSOR_ROT_ERROR_ABOVE
469
470   Detect that the constraint rotation error is below a threshold
471   
472   :value: 4
473   
474
475 .. _logic-property-sensor:
476
477 ---------------
478 Property Sensor
479 ---------------
480
481 .. data:: KX_PROPSENSOR_EQUAL
482
483    Activate when the property is equal to the sensor value.
484
485    :value: 1
486
487 .. data:: KX_PROPSENSOR_NOTEQUAL
488
489    Activate when the property is not equal to the sensor value.
490    
491    :value: 2
492
493 .. data:: KX_PROPSENSOR_INTERVAL
494
495    Activate when the property is between the specified limits.
496    
497    :value: 3
498    
499 .. data:: KX_PROPSENSOR_CHANGED
500
501    Activate when the property changes   
502
503    :value: 4
504
505 .. data:: KX_PROPSENSOR_EXPRESSION
506
507    Activate when the expression matches
508    
509    :value: 5
510
511 .. data:: KX_PROPSENSOR_LESSTHAN
512
513    Activate when the property is less than the sensor value
514
515    :value: 6
516
517 .. data:: KX_PROPSENSOR_GREATERTHAN
518
519    Activate when the property is greater than the sensor value
520
521    :value: 7
522
523 ------------
524 Radar Sensor
525 ------------
526
527 See :class:`bge.types.KX_RadarSensor`
528
529 .. data:: KX_RADAR_AXIS_POS_X
530 .. data:: KX_RADAR_AXIS_POS_Y
531 .. data:: KX_RADAR_AXIS_POS_Z
532 .. data:: KX_RADAR_AXIS_NEG_X
533 .. data:: KX_RADAR_AXIS_NEG_Y
534 .. data:: KX_RADAR_AXIS_NEG_Z
535
536 ----------
537 Ray Sensor
538 ----------
539
540 See :class:`bge.types.KX_RaySensor`
541
542 .. data:: KX_RAY_AXIS_POS_X
543 .. data:: KX_RAY_AXIS_POS_Y
544 .. data:: KX_RAY_AXIS_POS_Z
545 .. data:: KX_RAY_AXIS_NEG_X
546 .. data:: KX_RAY_AXIS_NEG_Y
547 .. data:: KX_RAY_AXIS_NEG_Z
548
549
550 =========
551 Actuators
552 =========
553
554 .. _action-actuator:
555
556 ---------------
557 Action Actuator
558 ---------------
559
560 See :class:`bge.types.BL_ActionActuator`
561
562 .. data:: KX_ACTIONACT_PLAY
563 .. data:: KX_ACTIONACT_PINGPONG
564 .. data:: KX_ACTIONACT_FLIPPER
565 .. data:: KX_ACTIONACT_LOOPSTOP
566 .. data:: KX_ACTIONACT_LOOPEND
567 .. data:: KX_ACTIONACT_PROPERTY
568
569 -----------------
570 Armature Actuator
571 -----------------
572
573  .. _armatureactuator-constants-type:
574    
575 See :class:`bge.types.BL_ArmatureActuator.type`
576
577 .. data:: KX_ACT_ARMATURE_RUN
578
579   Just make sure the armature will be updated on the next graphic frame.
580   This is the only persistent mode of the actuator:
581   it executes automatically once per frame until stopped by a controller
582   
583   :value: 0
584
585 .. data:: KX_ACT_ARMATURE_ENABLE
586
587   Enable the constraint.
588
589   :value: 1
590
591 .. data:: KX_ACT_ARMATURE_DISABLE
592
593   Disable the constraint (runtime constraint values are not updated).
594
595   :value: 2
596
597 .. data:: KX_ACT_ARMATURE_SETTARGET
598
599   Change target and subtarget of constraint.
600   
601   :value: 3
602
603 .. data:: KX_ACT_ARMATURE_SETWEIGHT
604
605   Change weight of constraint (IK only).
606
607   :value: 4
608
609 .. data:: KX_ACT_ARMATURE_SETINFLUENCE
610
611   Change influence of constraint.
612
613   :value: 5
614
615 -------------------
616 Constraint Actuator
617 -------------------
618
619 .. _constraint-actuator-option:
620
621 See :class:`bge.types.KX_ConstraintActuator.option`
622
623 * Applicable to Distance constraint:
624
625 .. data:: KX_CONSTRAINTACT_NORMAL
626
627      Activate alignment to surface
628    
629 .. data:: KX_CONSTRAINTACT_DISTANCE
630
631      Activate distance control
632
633 .. data:: KX_CONSTRAINTACT_LOCAL
634
635      Direction of the ray is along the local axis
636
637 * Applicable to Force field constraint:
638
639 .. data:: KX_CONSTRAINTACT_DOROTFH
640
641      Force field act on rotation as well
642
643 * Applicable to both:
644
645 .. data:: KX_CONSTRAINTACT_MATERIAL
646
647      Detect material rather than property
648    
649 .. data:: KX_CONSTRAINTACT_PERMANENT
650
651      No deactivation if ray does not hit target
652
653 .. _constraint-actuator-limit:
654
655 See :class:`bge.types.KX_ConstraintActuator.limit`
656
657 .. data:: KX_CONSTRAINTACT_LOCX
658
659    Limit X coord.
660    
661 .. data:: KX_CONSTRAINTACT_LOCY
662
663    Limit Y coord
664
665 .. data:: KX_CONSTRAINTACT_LOCZ
666
667    Limit Z coord
668    
669 .. data:: KX_CONSTRAINTACT_ROTX
670
671    Limit X rotation
672
673 .. data:: KX_CONSTRAINTACT_ROTY
674
675    Limit Y rotation
676    
677 .. data:: KX_CONSTRAINTACT_ROTZ
678
679    Limit Z rotation
680    
681 .. data:: KX_CONSTRAINTACT_DIRNX
682
683    Set distance along negative X axis
684
685 .. data:: KX_CONSTRAINTACT_DIRNY
686
687    Set distance along negative Y axis
688    
689 .. data:: KX_CONSTRAINTACT_DIRNZ
690
691    Set distance along negative Z axis
692    
693 .. data:: KX_CONSTRAINTACT_DIRPX
694
695    Set distance along positive X axis
696
697 .. data:: KX_CONSTRAINTACT_DIRPY
698
699    Set distance along positive Y axis
700    
701 .. data:: KX_CONSTRAINTACT_DIRPZ
702
703    Set distance along positive Z axis
704    
705 .. data:: KX_CONSTRAINTACT_ORIX
706
707    Set orientation of X axis
708    
709 .. data:: KX_CONSTRAINTACT_ORIY
710
711    Set orientation of Y axis
712    
713 .. data:: KX_CONSTRAINTACT_ORIZ
714
715    Set orientation of Z axis
716    
717 .. data:: KX_CONSTRAINTACT_FHNX
718
719    Set force field along negative X axis
720    
721 .. data:: KX_CONSTRAINTACT_FHNY
722
723    Set force field along negative Y axis
724    
725 .. data:: KX_CONSTRAINTACT_FHNZ
726
727    Set force field along negative Z axis
728    
729 .. data:: KX_CONSTRAINTACT_FHPX
730
731    Set force field along positive X axis
732
733 .. data:: KX_CONSTRAINTACT_FHPY
734
735    Set force field along positive Y axis
736    
737 .. data:: KX_CONSTRAINTACT_FHPZ
738
739    Set force field along positive Z axis
740
741 ----------------
742 Dynamic Actuator
743 ----------------
744
745 See :class:`bge.types.KX_SCA_DynamicActuator`
746
747 .. data:: KX_DYN_RESTORE_DYNAMICS
748 .. data:: KX_DYN_DISABLE_DYNAMICS
749 .. data:: KX_DYN_ENABLE_RIGID_BODY
750 .. data:: KX_DYN_DISABLE_RIGID_BODY
751 .. data:: KX_DYN_SET_MASS
752
753 .. _game-actuator:
754
755 -------------
756 Game Actuator
757 -------------
758
759 See :class:`bge.types.KX_GameActuator`
760
761 .. data:: KX_GAME_LOAD
762 .. data:: KX_GAME_START
763 .. data:: KX_GAME_RESTART
764 .. data:: KX_GAME_QUIT
765 .. data:: KX_GAME_SAVECFG
766 .. data:: KX_GAME_LOADCFG
767
768 .. _mouse-actuator:
769
770 ---------------
771 Mouse Actuator
772 ---------------
773
774 .. data:: KX_ACT_MOUSE_OBJECT_AXIS_X
775 .. data:: KX_ACT_MOUSE_OBJECT_AXIS_Y
776 .. data:: KX_ACT_MOUSE_OBJECT_AXIS_Z
777
778 ---------------
779 Parent Actuator
780 ---------------
781
782 .. data:: KX_PARENT_REMOVE
783 .. data:: KX_PARENT_SET
784
785 .. _logic-random-distributions:
786
787 --------------------
788 Random Distributions
789 --------------------
790
791 See :class:`bge.types.SCA_RandomActuator`
792
793 .. data:: KX_RANDOMACT_BOOL_CONST
794 .. data:: KX_RANDOMACT_BOOL_UNIFORM
795 .. data:: KX_RANDOMACT_BOOL_BERNOUILLI
796 .. data:: KX_RANDOMACT_INT_CONST
797 .. data:: KX_RANDOMACT_INT_UNIFORM
798 .. data:: KX_RANDOMACT_INT_POISSON
799 .. data:: KX_RANDOMACT_FLOAT_CONST
800 .. data:: KX_RANDOMACT_FLOAT_UNIFORM
801 .. data:: KX_RANDOMACT_FLOAT_NORMAL
802 .. data:: KX_RANDOMACT_FLOAT_NEGATIVE_EXPONENTIAL
803
804 --------------
805 Scene Actuator
806 --------------
807
808 See :class:`bge.types.KX_SceneActuator`
809
810 .. data:: KX_SCENE_RESTART
811 .. data:: KX_SCENE_SET_SCENE
812 .. data:: KX_SCENE_SET_CAMERA
813 .. data:: KX_SCENE_ADD_FRONT_SCENE
814 .. data:: KX_SCENE_ADD_BACK_SCENE
815 .. data:: KX_SCENE_REMOVE_SCENE
816 .. data:: KX_SCENE_SUSPEND
817 .. data:: KX_SCENE_RESUME
818
819 .. _logic-sound-actuator:
820
821 --------------
822 Sound Actuator
823 --------------
824       
825 See :class:`bge.types.KX_SoundActuator`
826
827 .. data:: KX_SOUNDACT_PLAYSTOP
828
829    :value: 1
830    
831 .. data:: KX_SOUNDACT_PLAYEND
832
833    :value: 2
834    
835 .. data:: KX_SOUNDACT_LOOPSTOP
836
837    :value: 3
838    
839 .. data:: KX_SOUNDACT_LOOPEND
840
841    :value: 4
842    
843 .. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL
844
845    :value: 5
846    
847 .. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL_STOP
848
849    :value: 6
850
851 -----------------
852 Steering Actuator
853 -----------------
854
855 .. _logic-steering-actuator:
856
857 See :class:`bge.types.KX_SteeringActuator.behavior`
858
859 .. data:: KX_STEERING_SEEK
860
861    :value: 1
862
863 .. data:: KX_STEERING_FLEE
864
865    :value: 2
866
867 .. data:: KX_STEERING_PATHFOLLOWING
868
869    :value: 3
870
871 .. _logic-trackto-actuator:
872
873 -----------------
874 TrackTo Actuator
875 -----------------
876
877 See :class:`bge.types.KX_TrackToActuator`
878
879 .. data:: KX_TRACK_UPAXIS_POS_X
880 .. data:: KX_TRACK_UPAXIS_POS_Y
881 .. data:: KX_TRACK_UPAXIS_POS_Z
882 .. data:: KX_TRACK_TRAXIS_POS_X
883 .. data:: KX_TRACK_TRAXIS_POS_Y
884 .. data:: KX_TRACK_TRAXIS_POS_Z
885 .. data:: KX_TRACK_TRAXIS_NEG_X
886 .. data:: KX_TRACK_TRAXIS_NEG_Y
887 .. data:: KX_TRACK_TRAXIS_NEG_Z
888
889 =======
890 Various
891 =======
892
893 ---------
894 2D Filter
895 ---------
896
897 .. data:: RAS_2DFILTER_BLUR
898
899    :value: 2
900    
901 .. data:: RAS_2DFILTER_CUSTOMFILTER
902
903    Customer filter, the code code is set via shaderText property.
904    
905    :value: 12
906    
907 .. data:: RAS_2DFILTER_DILATION
908
909    :value: 4
910    
911 .. data:: RAS_2DFILTER_DISABLED
912
913    Disable the filter that is currently active
914
915    :value: -1
916    
917 .. data:: RAS_2DFILTER_ENABLED
918
919    Enable the filter that was previously disabled
920
921    :value: -2
922    
923 .. data:: RAS_2DFILTER_EROSION
924
925    :value: 5
926    
927 .. data:: RAS_2DFILTER_GRAYSCALE
928
929    :value: 9
930    
931 .. data:: RAS_2DFILTER_INVERT
932
933    :value: 11
934    
935 .. data:: RAS_2DFILTER_LAPLACIAN
936
937    :value: 6
938    
939 .. data:: RAS_2DFILTER_MOTIONBLUR
940
941    Create and enable preset filters
942
943    :value: 1
944    
945 .. data:: RAS_2DFILTER_NOFILTER
946
947    Disable and destroy the filter that is currently active
948
949    :value: 0
950    
951 .. data:: RAS_2DFILTER_PREWITT
952
953    :value: 8
954    
955 .. data:: RAS_2DFILTER_SEPIA
956
957    :value: 10
958    
959 .. data:: RAS_2DFILTER_SHARPEN
960
961    :value: 3
962    
963 .. data:: RAS_2DFILTER_SOBEL
964
965    :value: 7
966
967 ----------------
968 Armature Channel
969 ----------------
970 .. _armaturechannel-constants-rotation-mode:
971
972 See :class:`bge.types.BL_ArmatureChannel.rotation_mode`
973
974 .. note:
975   euler mode are named as in Blender UI but the actual axis order is reversed
976
977 .. data:: ROT_MODE_QUAT
978
979   Use quaternion in rotation attribute to update bone rotation.
980
981   :value: 0
982
983 .. data:: ROT_MODE_XYZ
984
985   Use euler_rotation and apply angles on bone's Z, Y, X axis successively.
986
987   :value: 1
988
989 .. data:: ROT_MODE_XZY
990
991   Use euler_rotation and apply angles on bone's Y, Z, X axis successively.
992
993   :value: 2
994
995 .. data:: ROT_MODE_YXZ
996
997   Use euler_rotation and apply angles on bone's Z, X, Y axis successively.
998
999   :value: 3
1000
1001 .. data:: ROT_MODE_YZX
1002
1003   Use euler_rotation and apply angles on bone's X, Z, Y axis successively.
1004
1005   :value: 4
1006
1007 .. data:: ROT_MODE_ZXY
1008
1009   Use euler_rotation and apply angles on bone's Y, X, Z axis successively.
1010
1011   :value: 5
1012
1013 .. data:: ROT_MODE_ZYX
1014
1015   Use euler_rotation and apply angles on bone's X, Y, Z axis successively.
1016
1017   :value: 6
1018
1019
1020 -------------------
1021 Armature Constraint
1022 -------------------
1023 .. _armatureconstraint-constants-type:
1024
1025 See :class:`bge.types.BL_ArmatureConstraint.type`
1026
1027 .. data:: CONSTRAINT_TYPE_TRACKTO
1028 .. data:: CONSTRAINT_TYPE_KINEMATIC
1029 .. data:: CONSTRAINT_TYPE_ROTLIKE
1030 .. data:: CONSTRAINT_TYPE_LOCLIKE
1031 .. data:: CONSTRAINT_TYPE_MINMAX
1032 .. data:: CONSTRAINT_TYPE_SIZELIKE
1033 .. data:: CONSTRAINT_TYPE_LOCKTRACK
1034 .. data:: CONSTRAINT_TYPE_STRETCHTO
1035 .. data:: CONSTRAINT_TYPE_CLAMPTO
1036 .. data:: CONSTRAINT_TYPE_TRANSFORM
1037 .. data:: CONSTRAINT_TYPE_DISTLIMIT
1038
1039 .. _armatureconstraint-constants-ik-type:
1040
1041 See :class:`bge.types.BL_ArmatureConstraint.ik_type`
1042   
1043 .. data:: CONSTRAINT_IK_COPYPOSE
1044
1045    constraint is trying to match the position and eventually the rotation of the target.
1046
1047    :value: 0
1048
1049 .. data:: CONSTRAINT_IK_DISTANCE
1050
1051    Constraint is maintaining a certain distance to target subject to ik_mode
1052
1053    :value: 1
1054
1055 .. _armatureconstraint-constants-ik-flag:
1056
1057 See :class:`bge.types.BL_ArmatureConstraint.ik_flag`
1058
1059 .. data:: CONSTRAINT_IK_FLAG_TIP
1060
1061    Set when the constraint operates on the head of the bone and not the tail
1062
1063    :value: 1
1064
1065 .. data:: CONSTRAINT_IK_FLAG_ROT
1066
1067    Set when the constraint tries to match the orientation of the target
1068
1069    :value: 2
1070
1071 .. data:: CONSTRAINT_IK_FLAG_STRETCH
1072
1073    Set when the armature is allowed to stretch (only the bones with stretch factor > 0.0)
1074
1075    :value: 16
1076    
1077 .. data:: CONSTRAINT_IK_FLAG_POS
1078
1079    Set when the constraint tries to match the position of the target.
1080
1081    :value: 32
1082
1083 .. _armatureconstraint-constants-ik-mode:
1084
1085 See :class:`bge.types.BL_ArmatureConstraint.ik_mode`
1086
1087 .. data:: CONSTRAINT_IK_MODE_INSIDE
1088
1089    The constraint tries to keep the bone within ik_dist of target
1090
1091    :value: 0
1092
1093 .. data:: CONSTRAINT_IK_MODE_OUTSIDE
1094
1095    The constraint tries to keep the bone outside ik_dist of the target
1096
1097    :value: 1
1098    
1099 .. data:: CONSTRAINT_IK_MODE_ONSURFACE
1100
1101    The constraint tries to keep the bone exactly at ik_dist of the target.
1102
1103    :value: 2
1104
1105 .. _input-status:
1106
1107 ----------------
1108 Blender Material
1109 ----------------
1110
1111 .. data:: BL_DST_ALPHA
1112 .. data:: BL_DST_COLOR
1113 .. data:: BL_ONE
1114 .. data:: BL_ONE_MINUS_DST_ALPHA
1115 .. data:: BL_ONE_MINUS_DST_COLOR
1116 .. data:: BL_ONE_MINUS_SRC_ALPHA
1117 .. data:: BL_ONE_MINUS_SRC_COLOR
1118 .. data:: BL_SRC_ALPHA
1119 .. data:: BL_SRC_ALPHA_SATURATE
1120 .. data:: BL_SRC_COLOR
1121 .. data:: BL_ZERO
1122
1123 ------------
1124 Input Status
1125 ------------
1126
1127 See :class:`bge.types.SCA_PythonKeyboard`, :class:`bge.types.SCA_PythonMouse`, :class:`bge.types.SCA_MouseSensor`, :class:`bge.types.SCA_KeyboardSensor`
1128
1129 .. data:: KX_INPUT_NONE
1130 .. data:: KX_INPUT_JUST_ACTIVATED
1131 .. data:: KX_INPUT_ACTIVE
1132 .. data:: KX_INPUT_JUST_RELEASED
1133
1134 -------------
1135 KX_GameObject
1136 -------------
1137 .. _gameobject-playaction-mode:
1138
1139 See :class:`bge.types.KX_GameObject.playAction`
1140
1141 .. data:: KX_ACTION_MODE_PLAY
1142
1143    Play the action once.
1144    
1145    :value: 0
1146
1147 .. data:: KX_ACTION_MODE_LOOP
1148
1149    Loop the action (repeat it).
1150    
1151    :value: 1
1152
1153 .. data:: KX_ACTION_MODE_PING_PONG
1154
1155    Play the action one direct then back the other way when it has completed.
1156    
1157    :value: 2
1158
1159 .. _gameobject-playaction-blend:
1160
1161 .. data:: KX_ACTION_BLEND_BLEND
1162
1163    Blend layers using linear interpolation
1164
1165    :value: 0
1166
1167 .. data:: KX_ACTION_BLEND_ADD
1168
1169    Adds the layers together
1170
1171    :value: 1
1172
1173 -------------
1174 Mouse Buttons
1175 -------------
1176
1177 See :class:`bge.types.SCA_MouseSensor`
1178
1179 .. data:: KX_MOUSE_BUT_LEFT
1180 .. data:: KX_MOUSE_BUT_MIDDLE
1181 .. data:: KX_MOUSE_BUT_RIGHT
1182
1183 --------------------------
1184 Navigation Mesh Draw Modes
1185 --------------------------
1186
1187 .. _navmesh-draw-mode:
1188
1189 .. data:: RM_WALLS
1190
1191    Draw only the walls.
1192
1193 .. data:: RM_POLYS
1194
1195    Draw only polygons.
1196  
1197 .. data:: RM_TRIS
1198
1199    Draw triangle mesh.
1200    
1201 ------
1202 Shader
1203 ------
1204
1205 .. data:: VIEWMATRIX
1206 .. data:: VIEWMATRIX_INVERSE
1207 .. data:: VIEWMATRIX_INVERSETRANSPOSE
1208 .. data:: VIEWMATRIX_TRANSPOSE
1209 .. data:: MODELMATRIX
1210 .. data:: MODELMATRIX_INVERSE
1211 .. data:: MODELMATRIX_INVERSETRANSPOSE
1212 .. data:: MODELMATRIX_TRANSPOSE
1213 .. data:: MODELVIEWMATRIX
1214 .. data:: MODELVIEWMATRIX_INVERSE
1215 .. data:: MODELVIEWMATRIX_INVERSETRANSPOSE
1216 .. data:: MODELVIEWMATRIX_TRANSPOSE
1217 .. data:: CAM_POS
1218
1219    Current camera position
1220
1221 .. data:: CONSTANT_TIMER
1222
1223    User a timer for the uniform value.
1224
1225 .. data:: SHD_TANGENT
1226
1227 ------
1228 States
1229 ------
1230
1231 See :class:`bge.types.KX_StateActuator`
1232
1233 .. data:: KX_STATE1
1234 .. data:: KX_STATE2
1235 .. data:: KX_STATE3
1236 .. data:: KX_STATE4
1237 .. data:: KX_STATE5
1238 .. data:: KX_STATE6
1239 .. data:: KX_STATE7
1240 .. data:: KX_STATE8
1241 .. data:: KX_STATE9
1242 .. data:: KX_STATE10
1243 .. data:: KX_STATE11
1244 .. data:: KX_STATE12
1245 .. data:: KX_STATE13
1246 .. data:: KX_STATE14
1247 .. data:: KX_STATE15
1248 .. data:: KX_STATE16
1249 .. data:: KX_STATE17
1250 .. data:: KX_STATE18
1251 .. data:: KX_STATE19
1252 .. data:: KX_STATE20
1253 .. data:: KX_STATE21
1254 .. data:: KX_STATE22
1255 .. data:: KX_STATE23
1256 .. data:: KX_STATE24
1257 .. data:: KX_STATE25
1258 .. data:: KX_STATE26
1259 .. data:: KX_STATE27
1260 .. data:: KX_STATE28
1261 .. data:: KX_STATE29
1262 .. data:: KX_STATE30
1263
1264 .. _state-actuator-operation:
1265
1266 See :class:`bge.types.KX_StateActuator.operation`
1267
1268 .. data:: KX_STATE_OP_CLR
1269
1270    Substract bits to state mask
1271
1272    :value: 0
1273
1274 .. data:: KX_STATE_OP_CPY
1275
1276    Copy state mask
1277
1278    :value: 1
1279    
1280 .. data:: KX_STATE_OP_NEG
1281
1282    Invert bits to state mask
1283
1284    :value: 2
1285
1286 .. data:: KX_STATE_OP_SET
1287
1288    Add bits to state mask
1289
1290    :value: 3
1291
1292 .. _Two-D-FilterActuator-mode: