Scripting Props and Acts

From SCI Wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Chapter 3 - Scripting Props and Acts

In addition to a room having a script associated with it, props and actors can also have scripts. If you have a lot of actors and props in a room, all doing different things, it is much easier to associated the scripting logic for a particular actor with that actor instead of in the room's script.

Adding a shadow of the ego

For this exercise, we'll make a Prop that acts as the shadow of the ego. The Prop's script's doit method will check the ego's position, and adjust its own position accordingly.

Example:

Code:
    (instance aShadow of Prop
        (properties
            x 0
            y 0
            view 800
        )
        (method (init)
            (super:init())
            (self:ignoreActors() z(-90))
            (self:setScript(shadowScript))
        )
    )

    (instance shadowScript of Script
        (properties)
        (method (doit)
            (aShadow:
                posn((+ 20 (send gEgo:x)) (- (send gEgo:y) 90))
            )
            (super:doit())
        )
    )

And then, in the init method of the room, you do

For example:

Code:
        (aShadow:init())

It's that easy. Of course, the prop or actor's script can contain any of the standard script methods: changeState, handleEvent or doit.

 

< Previous: Chapter 2 - Regions and Locales Next: Chapter 4 - Loopers >