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

gamelogic.py « templates_py « scripts « release - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e589ad43e63ff43d7224155cc504221c03bc36ac (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
# 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.hitObjectList:
        # Check to see the object has this property
        if "life" in ob:
            own["life"] += ob["life"]
            ob["life"] = 0
    print(own["life"])
    """

main()