|
|
JTMR Digital Painter
Added on 4/12/2000
|
This behavior gives the illusion of the computer slowly painting a picture.
Download PC Source Download Mac Source
-- JTMR
-- DIGITAL
-- PAINTER
-- ==================================================
-- JTMR Digital Painter
-- Gives an 'artificial' life to the brush sprite.
-- ==================================================
-- © 2000 - JTMR
-- ==================================================
-- globals
-- properties
property movementLength, movementPressure, drawingRect, modelMember
property status
property initialLoc, currentMovementLength, blendStep
-- scripts
on beginSprite me
-- checks whether modelMember is a valid member
if me.modelMember.type <> #bitmap then
alert "You did not choose a correct model..."
me.status = #error
return 0
end if
if me.modelMember.depth > 8 then
alert "The model depth must be 8 bits..."
me.status = #error
return 0
end if
sprite(me.spriteNum).ink = 36
sprite(me.spriteNum).trails = 1
-- Initializes painting parameters
JTMRinit(me)
end beginSprite
on JTMRinit me
me.initialLoc = point(random(me.modelMember.width), random(me.modelMember.height))
me.currentMovementLength = random(me.movementLength)
sprite(me.spriteNum).forecolor = getPixel(me.modelMember, me.initialLoc[1], me.initialLoc[2])
me.blendStep = 100/me.movementLength
sprite(me.spriteNum).loc = point(me.drawingRect[1], me.drawingRect[2]) + me.initialLoc
if sprite(me.spriteNum).locH > me.drawingRect[3] OR sprite(me.spriteNum).locV > me.drawingRect[4] then JTMRInit(me)
end JTMRinit
on prepareFrame me
if me.status = #error then return 0
sprite(me.spriteNum).locH = sprite(me.spriteNum).locH + (21-me.movementPressure)
if sprite(me.spriteNum).locH - me.drawingRect[1]> min(me.modelMember.width, me.initialLoc[1] + me.currentMovementLength) then
JTMRinit(me)
end if
sprite(me.spriteNum).blend = sprite(me.spriteNum).blend - me.blendStep
end prepareFrame
-- ==================================================
on getPropertyDescriptionList
myRealStageRect = rect(0,0, the stageRight - the stageLeft, the stageBottom - the stageTop)
myPropertylist = [:]
addProp myPropertyList, #movementLength, [#Comment: "Movement Length (max value)", #format: #integer, #range: [#min: 1, #max: 50], #default: 20]
addProp myPropertyList, #movementPressure, [#Comment: "Movement Pressure (max value)", #format: #integer, #range: [#min: 1, #max: 20], #default: 15]
addProp myPropertyList, #drawingRect, [#Comment: "Drawing rect (rect value)", #format: #rect, #default: myRealStageRect]
addProp myPropertyList, #modelMember, [#Comment: "Model Member (8 bits bitmap member)", #format: #bitmap, #default: 0]
return myPropertyList
end getPropertyDescriptionList
on getBehaviorDescription
return "JTMR Behavior Library" & RETURN &¬
"© 2000 - JTMR" & RETURN &¬
"jtmr@worldnet.fr" & RETURN &¬
"http://services.worlddnet.fr/elian-c" & RETURN & RETURN &¬
"JTMR Digital Painter" & RETURN &¬
"Gives an 'artificial' life to the brush sprite." & RETURN & RETURN &¬
"This behavior is free software; you can redistribute it and/or modify " &¬
"it under the terms of the GNU General Public License as published by " &¬
"the Free Software Foundation; either version 2 of the License, or (at " &¬
"your option) any later version. " &¬
"This program is distributed in the hope that it will be useful, but " &¬
"WITHOUT ANY WARRANTY; without even the implied warranty of " &¬
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " &¬
"General Public License for more details. " &¬
"You should have received a copy of the GNU General Public License " &¬
"along with this program; if not, write to the Free Software " &¬
"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
end getBehaviorDescription
-- ==================================================
|
|