---------------------------> Information about this behaviour
-- [S] Fade bitmap to / from pure colour behaviour
-- Behaviour written by Barry Swan
-- E-mail: gerbil@theburrow.co.uk
-- WWW: http://www.theburrow.co.uk
---------------------------> Property definitions for the behaviour
property pSN, pS
property pOldInk, pOldBGColor, pOldColor
---------------------------> Initialise the sprite and properties
on beginSprite me
-- Set up sprite properties
pSN = me.spriteNum
pS = sprite(pSN)
pOldInk = pS.ink
pOldBGColor = pS.bgcolor
pOldColor = pS.color
-- Set to use darken ink
pS.ink = 41
-- Set up initial sprite state (if not normal)
if pStartState = #purecolour then me.SetToPureColour()
-- Set properties
pState = #default
pFrame = 0
-- Fade if set to immediately
if pFadeImmediately = TRUE then
if pStartState = #purecolour then pState = #fadetonormalcolours
else pState = #fadetopurecolour
end if
end
---------------------------> Check for values being changed - if so update sprite
on prepareFrame me
-- Anything to report?
if pState <> #default then
-- Increase frame counter
pFrame = pFrame + 1
-- React according to fade type
if pState = #fadetopurecolour then me.SetColours(pFrame)
else me.SetColours(pFrames - pFrame)
-- Has fade finished?
if pFrame = pFrames then pState = #default
end if
end
---------------------------> Set the sprite to the pure colour
on SetColours me, tStep
---------------------------> Set the sprite to it's normal values
on SetToNormalColours me
-- Set sprite state to default
pState = #default
-- Call SetColours correctly
me.SetColours(0)
end
---------------------------> Start the fade to pure colour
on FadeToPureColour
-- Set sprite state to fade to pure colour
pState = #fadetopurecolour
pFrame = 0
end
---------------------------> Start the fade from pure colour to normal colours
on FadeToNormalColours
-- Set sprite state to fade to pure colour
pState = #fadetonormalcolours
pFrame = 0
end
---------------------------> Reset the sprite when finished
on endSprite me
-- Restore the old sprite properties
pS.ink = pOldInk
pS.bgcolor = pOldBGColor
pS.color = pOldColor
end
---------------------------> Input the initial property values
on getPropertyDescriptionList me
-- Set up list
tlData = [:]
-- Options for start state
tlData[#pStartState] = [¬
#format: #symbol,¬
#default: #purecolour,¬
#range: [#purecolour, #normalcolours],¬
#comment: "Starting state of bitmap (as pure colour or the normal colours):"¬
]
-- Options for fade in / out
tlData[#pFadeImmediately] = [¬
#format: #boolean,¬
#default: TRUE,¬
#comment: "Fade immediately or not (if not fades when code triggers it):"¬
]
-- Options for number of frames to fade over
tlData[#pFrames] = [¬
#format: #integer,¬
#default: 30,¬
#comment: "Number of frames to fade over:"¬
]
-- Options for red
tlData[#pRed] = [¬
#format: #integer,¬
#default: 100,¬
#range: [#min: 0, #max: 100],¬
#comment: "Red intensity of fade colour (measured in percentage with 100% being no change):"¬
]
-- Options for green
tlData[#pGreen] = [¬
#format: #integer,¬
#default: 100,¬
#range: [#min: 0, #max: 100],¬
#comment: "Green intensity of fade colour (measured in percentage with 100% being no change):"¬
]
-- Options for blue
tlData[#pBlue] = [¬
#format: #integer,¬
#default: 100,¬
#range: [#min: 0, #max: 100],¬
#comment: "Blue intensity of fade colour (measured in percentage with 100% being no change):"¬
]
-- Return list
return tlData
end
---------------------------> Description of the behaviour in the behaviour inspector
on getBehaviorDescription me
-- Create description string
tInfo = "[S] Fade bitmap to / from pure colour behaviour" & RETURN & RETURN
tInfo = tInfo & "Drop this behaviour onto a bitmap sprite to make it fade to / from a pure colour either automatically or under lingo control." & RETURN
tInfo = tInfo & "Note that it uses the DARKEN ink. Therefore it will override the ink setting for the sprite in the score." & RETURN
tInfo = tInfo & "The DARKEN ink has transparency identical to MATTE ink." & RETURN & RETURN
tInfo = tInfo & "Start state of image - either it starts as the pure colour or it starts as normal." & RETURN
tInfo = tInfo & "Fade immediately - if set to true the fade occurs immediately, otherwise it is triggered through behaviour handlers." & RETURN
tInfo = tInfo & "Number of frames for fade to take." & RETURN
tInfo = tInfo & "Red intensity of pure colour - measured as a percentage with 100% being maximum intensity." & RETURN
tInfo = tInfo & "Green intensity of pure colour - measured as a percentage with 100% being maximum intensity." & RETURN
tInfo = tInfo & "Blue intensity of pure colour - measured as a percentage with 100% being maximum intensity." & RETURN & RETURN
tInfo = tInfo & "Behaviour handlers are:" & RETURN & RETURN
tInfo = tInfo & "me.SetToPureColour() - sets the sprite to the pure colour." & RETURN
tInfo = tInfo & "me.SetToNormalColours() - sets the sprite to it's normal colours." & RETURN
tInfo = tInfo & "me.FadeToPureColour() - Starts the sprite fading from normal colours to the pure colour." & RETURN
tInfo = tInfo & "me.FadeToNormalColours() - Starts the sprite fading from the pure colour to it's normal colours." & RETURN & RETURN
tInfo = tInfo & "You can change the properties and the behaviour will update the graphic when any of the behaviour handlers are called." & RETURN
tInfo = tInfo & "To alter the number of frames the fade takes, change the 'pFrames' property of the sprite." & RETURN
tInfo = tInfo & "To alter the red component of the pure colour, change the 'pRed' property of the sprite." & RETURN
tInfo = tInfo & "To alter the green component of the pure colour, change the 'pGreen' property of the sprite." & RETURN
tInfo = tInfo & "To alter the blue component of the pure colour, change the 'pBlue' property of the sprite." & RETURN
-- Return string
return tInfo
end
Contact
MMI
36 South Court Sq
Suite 300
Newnan, GA 30263
USA