Actor (of Prop)¶
-
class
Actor¶ Defined in Actor.sc.
Actor is the base class for moving objects in your game. It extends
Propby providing the following additional capabilities:- A mover property that is responsible for controlling how the Actor moves. This is assigned with setMotion().
- An optional Avoider that makes the Actor avoid objects.
- Optional “blocks” that indicate areas the Actor can or can’t be.
Example definition:
(instance wd40 of Actor (properties x 20 y 20 noun N_ROBOT view 400 loop 8 signal ignAct ) )
Example initialization:
(wd40 init: setMotion: PolyPath 127 128 )
Subclasses: Ego.
Properties¶
Inherited from Prop:
| Property | Description |
|---|---|
| x | x position. See posn(). |
| y | y position. See posn(). |
| z | z position. See posn(). |
| heading | The angle direction the Actor faces. |
| noun | The noun for the Actor (for messages). |
| case | The optional case for the Actor (for messages). |
| modNum | Module number (for messages) |
| nsTop | “Now seen” rect. The visual bounds of the Actor. |
| nsLeft | |
| nsBottom | |
| nsRight | |
| sightAngle | |
| actions | |
| onMeCheck | The type of onMe checks that are done. |
| state | |
| approachX | The approach spot x. |
| approachY | The approach spot y. |
| approachDist | The approach distance. |
| _approachVerbs | Bitmask indicating which verbs cause the ego to approach. |
| yStep | The number of pixels moved in the y direction each cycle. |
| view | The view for Actor. |
| loop | |
| cel | |
| priority | |
| underBits | |
| signal | |
| lsTop | The “last seen” rect... |
| lsLeft | |
| lsBottom | |
| lsRight | |
| brTop | The “bounds rect” (near the feet of the Actor). |
| brLeft | |
| brBottom | |
| brRight | |
| scaleSignal | |
| scaleX | Current x scale. |
| scaleY | Current y scale. |
| maxScale | Max scale. |
| cycleSpeed | How quickly the Actor animation cycles. |
| script | Arbitrary Script object. |
| cycler | Cycle attached to the Actor. |
| timer | |
| detailLevel | |
| scaler | Scaler object attached to the Actor. |
| name |
Defined in Actor:
| Property | Description |
|---|---|
| illegalBits | |
| xLast | |
| yLast | |
| xStep | |
| origStep | |
| moveSpeed | How quickly the Actor moves. |
| blocks | |
| baseSetter | |
| mover | The Motion object attached to the Actor. |
| looper | Optional looper code. |
| viewer | |
| avoider | |
| code |
Methods¶
-
init(params)
-
doit()
-
posn(theX theY [theZ]) Sets the position of the Actor.
-
setLoop(loop)
-
setLoop(loopClass [params ...])
-
setLoop(looper [params ...]) Sets a loop on the Actor, or sets an object that controls which loop is used.
Parameters: - loop (number) – A loop number.
- loopClass (class) – A class that has a doit method that controls its client loop (e.g. see
Grooper). - looper (heapPtr) – An instance of a looper class.
-
delete()
-
motionCue()
-
checkDetail(param1)
-
setMotion(theMover sendParams) Assigns a mover object to the Actor. The mover is initialized with the Actor and any sendParams that have been provided.
Parameters: - theMover – A class name, or an instance that inherits from
Motion. - sendParams – Any params that should be forwarded to the mover’s init() method.
Movers control the Actor’s motion, whether it be via mouse or keyboard input, or some in-game logic.
Example usage for moving a ball to a particular position, and cueing the caller when it’s done:
(myBall setMotion: MoveTo 123 100 self)
- theMover – A class name, or an instance that inherits from
-
setAvoider(theAvoider sendParams)
-
ignoreHorizon(param1)
-
observeControl(bits) Specifies the control colors which the Actor’s movement. This is not used commonly in SCI1.1. Constraining an Actor’s motion is generally done with Polygons instead.
-
ignoreControl(bits) Specifies which control colors should no longer block the Actor’s movement.
-
observeBlocks(block) Adds a block (an instance which inherits from
Blk) to the Actor’s list of blocks. These control where an Actor is allowed to go. In SCI1.1, these have generally been replaced by Polygons.
-
ignoreBlocks(block) Removes a block from the Actor’s list of blocks.
-
isStopped() Returns TRUE if the Actor is not moving, FALSE otherwise.
-
isBlocked()
-
inRect(left top right bottom) Returns TRUE if the Actor is inside the specified rectangle, FALSE otherwise.
-
onControl([fUsePoint]) Provides a bitmask of the control colors on which an Actor is located.
Parameters: fUsePoint (boolean) – If TRUE, the Actor’s location is used. If FALSE (or not specified), the Actor’s base rectangle (near its feet) is used. Returns: A bitmask of ctl flags. These should usually be tested with the & operator. Example usage:
(if (& ctlGREEN (gEgo onControl:)) (Prints {The ego is on Green}) )
-
distanceTo(obj) Parameters: obj (heapPtr) – An object with x and y properties. Returns: the distance between this Actor and the object.
-
cantBeHere() Returns TRUE if the Actor can’t be in its current location.
-
setStep(newX newY [fDontSetOrigStep]) Sets the pixel increments in which the Actor moves. Bigger increments means the Actor will cover larger distances in each frame.
Parameters: - newX (number) – The xStep, or -1 if not provided.
- newY (number) – The yStep, or -1 if not provided.
- fDontSetOrigStep (boolean) – Optional flag telling us not to set origStep.
-
setDirection(newDirection) Sets the direction that the Actor faces.
Parameters: newDirection (number) – One of CENTER, UP, UPRIGHT, RIGHT, DOWNRIGHT, DOWN, DOWNLEFT, LEFT or UPLEFT.
-
setHeading(theHeading cueObj cueValues) Sets the angle heading of the Actor.
-
setSpeed(newSpeed) Sets the speed of the Actor. This controls both the move and cycle speed.
