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.
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.
ExampleCode:(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 >Top
You can help keep The Sierra Help Pages and its affiliates alive by helping to defray some of the costs of hosting this site. If it has been of help to you, please consider contributing to help keep it online.Thank you.
The Sierra Help Pages | Sierra Game Help | Walkthroughs | Hints, Tips & Spoilers | Utilities | Links | SHP Forums | Search
© 2013 to present The Sierra Help Pages. All rights reserved. All Sierra games, artwork and music © Sierra.