property sNum
property mode -- static, follow sprite, follow mouse
property lightSprite -- which sprite to follow
property transparency
property red, green, blue
property feather
property offsetX, offsetY
on getBehaviorDescription me
return "Move the light source of the sprite around by clicking on the sprite and dragging."
end
on getPropertyDescriptionList me
set list = [:]
addProp list, #transparency, [#comment: "Transparency:", #format: #integer, #default: 200, #range: [#max: 255, #min:0]]
addProp list, #red, [#comment: "Red:", #format: #integer, #default: 0, #range: [#max: 255, #min:0]]
addProp list, #green, [#comment: "Green:", #format: #integer, #default: 0, #range: [#max: 255, #min:0]]
addProp list, #blue, [#comment: "Blue:", #format: #integer, #default: 0, #range: [#max: 255, #min:0]]
addProp list, #feather, [#comment: "Feather:", #format: #integer, #default: 0, #range: [#max: 4, #min:0]]
addProp list, #offsetX, [#comment: "Offset X:", #format: #integer, #default: 4]
addProp list, #offsetY, [#comment: "Offset Y:", #format: #integer, #default: 4]
return list
end
-- apply the drop shadow effect
on beginSprite me
set sNum = the spriteNum of me
set animMode = #relativeToPoint
dropShadow(sprite sNum, [#animMode: animMode, #transparency: transparency, #red: red, #green: green, #blue: blue, #feather: feather, #xOffSet: offsetX, #yOffSet: offsetY])
end
on mouseDown me
DragLight(me)
end
on DragLight me
repeat while the mouseDown
SetShadow(me)
updateStage
end repeat
end
-- new light settings if needed
on setShadow me
set x = the mouseH
set y = the mouseV
dropShadow(sprite sNum, [#lightLocX: x, #lightLocY: y])
end
|