class ScriptedSpeaker
package funkin.play.cutscene.dialogue
extends Speaker › FlxSprite › FlxObject › FlxBasic
implements HScriptedClass
Available on all platforms
A script that can be tied to a Speaker. Create a scripted class that extends Speaker to use this. This allows you to customize how a specific conversation speaker appears.
Static methods
staticinit(clsName:String, id:String, ?params:Dynamic):ScriptedSpeaker
Initializes a scripted class instance using the given scripted class name and constructor arguments.
staticlistScriptClasses():Array<String>
Returns a list of all the scripted classes which extend this class.
staticscriptStaticCall(clsName:String, funcName:String):Dynamic
Call a custom static function on a scripted class, by the given name, with the given arguments.
staticscriptStaticGet(clsName:String, fieldName:String):Dynamic
Retrieves a custom static variable on a scripted class, by the given name.
staticscriptStaticSet(clsName:String, fieldName:String, ?fieldValue:Dynamic):Dynamic
Sets the value of a custom static variable on a scripted class, by the given name.
Constructor
Methods
centerOffsets(AdjustPosition:Bool = false):Void
Polymod HScriptedClass override of centerOffsets.
Helper function that adjusts the offset automatically to center the bounding box within the graphic.
Parameters:
AdjustPosition | Adjusts the actual X and Y position just once to match the offset change. |
|---|
destroy():Void
Polymod HScriptedClass override of destroy.
WARNING: A destroyed FlxBasic can't be used anymore.
It may even cause crashes if it is still part of a group or state.
You may want to use kill() instead if you want to disable the object temporarily only and revive() it later.
This function is usually not called manually (Flixel calls it automatically during state switches for all add()ed objects).
Override this function to null out variables manually or call destroy() on class members if necessary.
Don't forget to call super.destroy()!
draw():Void
Polymod HScriptedClass override of draw.
Called by game loop, updates then blits or renders current frame of animation to the screen.
drawFrame(Force:Bool = false):Void
Polymod HScriptedClass override of drawFrame.
Request (or force) that the sprite update the frame before rendering. Useful if you are doing procedural generation or other weirdness!
Parameters:
Force | Force the frame to redraw, even if its not flagged as necessary. |
|---|
getCameras():Array<FlxCamera>
Polymod HScriptedClass override of getCameras.
The cameras that will draw this. Use this.cameras to set specific cameras for this object,
otherwise the container's cameras are used, or the container's container and so on. If there
is no container, say, if this is inside FlxGroups rather than a FlxContainer then the
default draw cameras are returned.
5.7.0
.getDefaultCamera():FlxCamera
Polymod HScriptedClass override of getDefaultCamera.
The main camera that will draw this. Use this.cameras to set specific cameras for this
object, otherwise the container's camera is used, or the container's container and so on.
If there is no container, say, if this is inside FlxGroups rather than a FlxContainer
then FlxG.camera is returned.
5.7.0
.getGraphicBounds(?rect:FlxRect):FlxRect
Polymod HScriptedClass override of getGraphicBounds.
Retrieves the world bounds of this sprite's graphic
Note: Ignores scrollFactor, to get the screen position of the graphic use
getScreenBounds
Parameters:
rect | The resulting rect, if |
|---|
5.9.0
.getGraphicMidpoint(?point:FlxPoint):FlxPoint
Polymod HScriptedClass override of getGraphicMidpoint.
Retrieve the midpoint of this sprite's graphic in world coordinates.
Parameters:
point | The resulting point, if |
|---|
getMidpoint(?point:FlxPoint):FlxPoint
Polymod HScriptedClass override of getMidpoint.
Retrieve the midpoint of this object in world coordinates.
Parameters:
point | Allows you to pass in an existing |
|---|
Returns:
A FlxPoint object containing the midpoint of this object in world coordinates.
getPixelAt(worldPoint:FlxPoint, ?camera:FlxCamera):Null<FlxColor>
Polymod HScriptedClass override of getPixelAt.
Determines which of this sprite's pixels are at the specified world coordinate, if any.
Factors in scale, angle, offset, origin, and scrollFactor.
Parameters:
worldPoint | The point in world space |
|---|---|
camera | The camera, used for |
Returns:
a FlxColor, if the point is in the sprite's graphic, otherwise null is returned.
5.0.0
.getPixelAtScreen(screenPoint:FlxPoint, ?camera:FlxCamera):Null<FlxColor>
Polymod HScriptedClass override of getPixelAtScreen.
Determines which of this sprite's pixels are at the specified screen coordinate, if any.
Factors in scale, angle, offset, origin, and scrollFactor.
Parameters:
screenPoint | The point in screen space |
|---|---|
camera | The desired "screen" space. If |
Returns:
a FlxColor, if the point is in the sprite's graphic, otherwise null is returned.
5.0.0
.getPosition(?result:FlxPoint):FlxPoint
Polymod HScriptedClass override of getPosition.
Returns the world position of this object.
Parameters:
result | Optional arg for the returning point. |
|---|
Returns:
The world position of this object.
getRotatedBounds(?newRect:FlxRect):FlxRect
Polymod HScriptedClass override of getRotatedBounds.
Calculates the smallest globally aligned bounding box that encompasses this
sprite's width and height, at its current rotation.
Note, if called on a FlxSprite, the origin is used, but scale and offset are ignored.
Use getScreenBounds to use these properties.
Parameters:
newRect | The optional output |
|---|
Returns:
A globally aligned FlxRect that fully contains the input object's width and height.
4.11.0
.getScreenBounds(?newRect:FlxRect, ?camera:FlxCamera):FlxRect
Polymod HScriptedClass override of getScreenBounds.
Calculates the smallest globally aligned bounding box that encompasses this sprite's graphic as it would be displayed. Honors scrollFactor, rotation, scale, offset and origin.
Parameters:
newRect | Optional output |
|---|---|
camera | Optional camera used for scrollFactor, if null |
Returns:
A globally aligned FlxRect that fully contains the input sprite.
4.11.0
.getScreenPosition(?result:FlxPoint, ?camera:FlxCamera):FlxPoint
Polymod HScriptedClass override of getScreenPosition.
Returns the screen position of this object.
Parameters:
result | Optional arg for the returning point |
|---|---|
camera | The desired "screen" coordinate space. If |
Returns:
The screen position of this object.
graphicLoaded():Void
Polymod HScriptedClass override of graphicLoaded.
Called whenever a new graphic is loaded for this sprite (after loadGraphic(), makeGraphic() etc).
hasColorTransform():Bool
Polymod HScriptedClass override of hasColorTransform.
Whether this sprite has a color transform, menaing any of the following: less than full
alpha, a color tint, or a colorTransform whos values are not the default.
hurt(damage:Float):Void
Polymod HScriptedClass override of hurt.
Reduces the health variable of this object by the amount specified in Damage.
Calls kill() if health drops to or below zero.
Parameters:
Damage | How much health to take away (use a negative number to give a health bonus). |
|---|
isOnScreen(?camera:FlxCamera):Bool
Polymod HScriptedClass override of isOnScreen.
Check and see if this object is currently on screen. Differs from FlxObject's implementation
in that it takes the actual graphic into account, not just the hitbox or bounding box or whatever.
Parameters:
camera | Specify which game camera you want. If |
|---|
Returns:
Whether the object is on screen or not.
isPixelPerfectRender(?camera:FlxCamera):Bool
Polymod HScriptedClass override of isPixelPerfectRender.
Check if object is rendered pixel perfect on a specific camera.
isSimpleRender(?camera:FlxCamera):Bool
Polymod HScriptedClass override of isSimpleRender.
Returns the result of isSimpleRenderBlit() if FlxG.renderBlit is
true, or false if FlxG.renderTile is true.
isSimpleRenderBlit(?camera:FlxCamera):Bool
Polymod HScriptedClass override of isSimpleRenderBlit.
Determines the function used for rendering in blitting:
copyPixels() for simple sprites, draw() for complex ones.
Sprites are considered simple when they have an angle of 0, a scale of 1,
don't use blend and pixelPerfectRender is true.
Parameters:
camera | If a camera is passed its |
|---|
kill():Void
Polymod HScriptedClass override of kill.
Calls kill() on the group's members and then on the group itself.
You can revive this group later via revive() after this.
loadGraphic(graphic:FlxGraphicAsset, animated:Bool = false, frameWidth:Int = 0, frameHeight:Int = 0, unique:Bool = false, ?key:String):FlxSprite
Polymod HScriptedClass override of loadGraphic.
Load an image from an embedded graphic file.
HaxeFlixel's graphic caching system keeps track of loaded image data.
When you load an identical copy of a previously used image, by default
HaxeFlixel copies the previous reference onto the pixels field instead
of creating another copy of the image data, to save memory.
NOTE: This method updates hitbox size and frame size.
Parameters:
graphic | The image you want to use. |
|---|---|
animated | Whether the |
frameWidth | Specify the width of your sprite (helps figure out what to do with non-square sprites or sprite sheets). |
frameHeight | Specify the height of your sprite (helps figure out what to do with non-square sprites or sprite sheets). |
unique | Whether the graphic should be a unique instance in the graphics cache.
Set this to |
key | Set this parameter if you're loading |
Returns:
This FlxSprite instance (nice for chaining stuff together, if you're into that).
loadGraphicFromSprite(Sprite:FlxSprite):FlxSprite
Polymod HScriptedClass override of loadGraphicFromSprite.
Load graphic from another FlxSprite and copy its tile sheet data.
This method can be useful for non-flash targets.
Parameters:
Sprite | The |
|---|
Returns:
This FlxSprite instance (nice for chaining stuff together, if you're into that).
loadRotatedFrame(frame:FlxFrame, rotations:Int = 16, antiAliasing:Bool = false, autoBuffer:Bool = false):FlxSprite
Polymod HScriptedClass override of loadRotatedFrame.
Helper method which allows using FlxFrame as graphic source for sprite's loadRotatedGraphic() method.
Parameters:
frame | Frame to load into this sprite. |
|---|---|
rotations | The number of rotation frames the final sprite should have.
For small sprites this can be quite a large number ( |
antiAliasing | Whether to use high quality rotations when creating the graphic. Default is |
autoBuffer | Whether to automatically increase the image size to accommodate rotated corners. Will create frames that are 150% larger on each axis than the original frame or graphic. |
Returns:
this FlxSprite with loaded rotated graphic in it.
loadRotatedGraphic(Graphic:FlxGraphicAsset, Rotations:Int = 16, Frame:Int = -1, AntiAliasing:Bool = false, AutoBuffer:Bool = false, ?Key:String):FlxSprite
Polymod HScriptedClass override of loadRotatedGraphic.
Create a pre-rotated sprite sheet from a simple sprite. This can make a huge difference in graphical performance on blitting targets!
Parameters:
Graphic | The image you want to rotate and stamp. |
|---|---|
Rotations | The number of rotation frames the final sprite should have.
For small sprites this can be quite a large number ( |
Frame | If the |
AntiAliasing | Whether to use high quality rotations when creating the graphic. Default is |
AutoBuffer | Whether to automatically increase the image size to accommodate rotated corners. Will create frames that are 150% larger on each axis than the original frame or graphic. |
Key | Optional, set this parameter if you're loading |
Returns:
This FlxSprite instance (nice for chaining stuff together, if you're into that).
makeGraphic(width:Int, height:Int, color:FlxColor = -1, unique:Bool = false, ?key:String):FlxSprite
Polymod HScriptedClass override of makeGraphic.
This function creates a flat colored rectangular image dynamically.
HaxeFlixel's graphic caching system keeps track of loaded image data. When you make an identical copy of a previously used image, by default HaxeFlixel copies the previous reference onto the pixels field instead of creating another copy of the image data, to save memory.
NOTE: This method updates hitbox size and frame size.
Parameters:
Width | The width of the sprite you want to generate. |
|---|---|
Height | The height of the sprite you want to generate. |
Color | Specifies the color of the generated block (ARGB format). |
Unique | Whether the graphic should be a unique instance in the graphics cache. Default is |
Key | An optional |
Returns:
This FlxSprite instance (nice for chaining stuff together, if you're into that).
onCreate(event:ScriptEvent):Void
Polymod HScriptedClass override of onCreate.
Called when speaker is being created.
Parameters:
event | The script event. |
|---|
onDialogueCompleteLine(event:DialogueScriptEvent):Void
Polymod HScriptedClass override of onDialogueCompleteLine.
overlaps(objectOrGroup:FlxBasic, inScreenSpace:Bool = false, ?camera:FlxCamera):Bool
Polymod HScriptedClass override of overlaps.
Checks to see if some FlxObject overlaps this FlxObject or FlxGroup.
If the group has a LOT of things in it, it might be faster to use FlxG.overlap().
WARNING: Currently tilemaps do NOT support screen space overlap checks!
Parameters:
objectOrGroup | The object or group being tested. |
|---|---|
inScreenSpace | Whether to take scroll factors into account when checking for overlap.
Default is |
camera | The desired "screen" space. If |
Returns:
Whether or not the two objects overlap.
overlapsAt(x:Float, y:Float, objectOrGroup:FlxBasic, inScreenSpace:Bool = false, ?camera:FlxCamera):Bool
Polymod HScriptedClass override of overlapsAt.
Checks to see if this FlxObject were located at the given position,
would it overlap the FlxObject or FlxGroup?
This is distinct from overlapsPoint(), which just checks that point,
rather than taking the object's size into account.
WARNING: Currently tilemaps do NOT support screen space overlap checks!
Parameters:
x | The X position you want to check. Pretends this object (the caller, not the parameter) is located here. |
|---|---|
y | The Y position you want to check. Pretends this object (the caller, not the parameter) is located here. |
objectOrGroup | The object or group being tested. |
inScreenSpace | Whether to take scroll factors into account when checking for overlap.
Default is |
camera | The desired "screen" space. If |
Returns:
Whether or not the two objects overlap.
overlapsPoint(point:FlxPoint, inScreenSpace:Bool = false, ?camera:FlxCamera):Bool
Polymod HScriptedClass override of overlapsPoint.
Checks to see if a point in 2D world space overlaps this FlxObject.
Parameters:
point | The point in world space you want to check. |
|---|---|
inScreenSpace | Whether to take scroll factors into account when checking for overlap. |
camera | The desired "screen" space. If |
Returns:
Whether or not the point overlaps this object.
pixelsOverlapPoint(worldPoint:FlxPoint, alphaTolerance:Int = 255, ?camera:FlxCamera):Bool
Polymod HScriptedClass override of pixelsOverlapPoint.
Checks to see if a point in 2D world space overlaps this FlxSprite object's
current displayed pixels. This check is ALWAYS made in screen space, and
factors in scale, angle, offset, origin, and scrollFactor.
Parameters:
worldPoint | point in world space you want to check. |
|---|---|
alphaTolerance | Used to determine what counts as solid. |
camera | The desired "screen" space. If |
Returns:
Whether or not the point overlaps this object.
playAnimation(name:String, restart:Bool = false):Void
Polymod HScriptedClass override of playAnimation.
Parameters:
name | The name of the animation to play. |
|---|---|
restart | Whether to restart the animation if it is already playing. |
replaceColor(Color:FlxColor, NewColor:FlxColor, FetchPositions:Bool = false):Array<FlxPoint>
Polymod HScriptedClass override of replaceColor.
Replaces all pixels with specified Color with NewColor pixels.
WARNING: very expensive (especially on big graphics) as it iterates over every single pixel.
Parameters:
Color | Color to replace |
|---|---|
NewColor | New color |
FetchPositions | Whether we need to store positions of pixels which colors were replaced. |
Returns:
Array with replaced pixels positions
reset(x:Float, y:Float):Void
Polymod HScriptedClass override of reset.
Handy function for reviving game objects. Resets their existence flags and position.
Parameters:
x | The new X position of this object. |
|---|---|
y | The new Y position of this object. |
scriptCall(funcName:String, ?funcArgs:Array<Dynamic>):Dynamic
Calls a function of the scripted class with the given name and arguments.
scriptSet(varName:String, ?varValue:Dynamic):Dynamic
Directly modifies the value of a local variable of a scripted class.
setAnimationOffsets(name:String, xOffset:Float, yOffset:Float):Void
Polymod HScriptedClass override of setAnimationOffsets.
Define the animation offsets for a specific animation.
setColorTransform(redMultiplier:Float = 1.0, greenMultiplier:Float = 1.0, blueMultiplier:Float = 1.0, alphaMultiplier:Float = 1.0, redOffset:Float = 0.0, greenOffset:Float = 0.0, blueOffset:Float = 0.0, alphaOffset:Float = 0.0):Void
Polymod HScriptedClass override of setColorTransform.
Sets the sprite's color transformation with control over color offsets.
With FlxG.renderTile, offsets are only supported on OpenFL Next version 3.6.0 or higher.
Parameters:
redMultiplier | The value for the red multiplier, in the range from |
|---|---|
greenMultiplier | The value for the green multiplier, in the range from |
blueMultiplier | The value for the blue multiplier, in the range from |
alphaMultiplier | The value for the alpha transparency multiplier, in the range from |
redOffset | The offset value for the red color channel, in the range from |
greenOffset | The offset value for the green color channel, in the range from |
blueOffset | The offset for the blue color channel value, in the range from |
alphaOffset | The offset for alpha transparency channel value, in the range from |
setFrames(Frames:FlxFramesCollection, saveAnimations:Bool = true):FlxSprite
Polymod HScriptedClass override of setFrames.
Sets frames and allows you to save animations in sprite's animation controller
Parameters:
Frames | Frames collection to set for this sprite. |
|---|---|
saveAnimations | Whether to save animations in animation controller or not. |
Returns:
This sprite with loaded frames
setGraphicSize(width:Float = 0.0, height:Float = 0.0):Void
Polymod HScriptedClass override of setGraphicSize.
Helper function to set the graphic's dimensions by using scale, allowing you to keep the current aspect ratio
should one of the numbers be <= 0. It might make sense to call updateHitbox() afterwards!
Parameters:
width | How wide the graphic should be. If |
|---|---|
height | How high the graphic should be. If |
setPosition(x:Float = 0.0, y:Float = 0.0):Void
Polymod HScriptedClass override of setPosition.
Helper function to set the coordinates of this object. Handy since it only requires one line of code.
Parameters:
x | The new x position |
|---|---|
y | The new y position |
setScale(scale:Null<Float>):Void
Polymod HScriptedClass override of setScale.
Set the sprite scale to the appropriate value.
Parameters:
null | scale |
|---|
setSize(width:Float, height:Float):Void
Polymod HScriptedClass override of setSize.
Shortcut for setting both width and Height.
Parameters:
width | The new hitbox width. |
|---|---|
height | The new hitbox height. |
stamp(Brush:FlxSprite, X:Int = 0, Y:Int = 0):Void
Polymod HScriptedClass override of stamp.
Stamps / draws another FlxSprite onto this FlxSprite.
This function is NOT intended to replace draw()!
Parameters:
Brush | The sprite you want to use as a brush or stamp or pen or whatever. |
|---|---|
X | The X coordinate of the brush's top left corner on this sprite. |
Y | They Y coordinate of the brush's top left corner on this sprite. |
transformScreenToPixels(screenPoint:FlxPoint, ?camera:FlxCamera, ?result:FlxPoint):FlxPoint
Polymod HScriptedClass override of transformScreenToPixels.
Converts the point from screen coordinates to this sprite's pixel coordinates where (0,0)
is the top left of the graphic.
Factors in scale, angle, offset, origin, and scrollFactor.
Parameters:
screenPoint | The screen coordinates |
|---|---|
camera | The desired "screen" space. If |
result | Optional arg for the returning point |
transformWorldToPixels(worldPoint:FlxPoint, ?camera:FlxCamera, ?result:FlxPoint):FlxPoint
Polymod HScriptedClass override of transformWorldToPixels.
Converts the point from world coordinates to this sprite's pixel coordinates where (0,0)
is the top left of the graphic.
Factors in scale, angle, offset, origin, and scrollFactor.
Parameters:
worldPoint | The world coordinates |
|---|---|
camera | The camera, used for |
result | Optional arg for the returning point |
transformWorldToPixelsSimple(worldPoint:FlxPoint, ?result:FlxPoint):FlxPoint
Polymod HScriptedClass override of transformWorldToPixelsSimple.
Converts the point from world coordinates to this sprite's pixel coordinates where (0,0)
is the top left of the graphic. Same as worldToPixels but never uses a camera,
therefore scrollFactor is ignored
Parameters:
worldPoint | The world coordinates. |
|---|---|
result | Optional arg for the returning point |
updateFramePixels():BitmapData
Polymod HScriptedClass override of updateFramePixels.
Retrieves the BitmapData of the current FlxFrame. Updates framePixels.
updateHitbox():Void
Polymod HScriptedClass override of updateHitbox.
Updates the sprite's hitbox (width, height, offset) according to the current scale.
Also calls centerOrigin().