property pRes
property pWidth
property pHeight
property pImage
property pStage
property pSpriteX, pSpriteY
on beginSprite me
-- starting resolution
pRes = 25
-- get width and height of the image
pWidth = sprite (me.spriteNum).member.width
pHeight = sprite (me.spriteNum).member.height
-- get the image
pImage = sprite (me.spriteNum).member.image
-- get the stage image
pStage = (the Stage).image
-- get the upper left corner
pSpriteX = sprite (me.spriteNum).rect.left
pSpriteY = sprite (me.spriteNum).rect.top
-- get rid of the image before it is first seen
sprite (me.spriteNum).visible = FALSE
end
on prepareFrame me
-- continue until six pixel squares
if pRes > 6 then
-- lower the square size
pRes = pRes - 1
-- loop through each square
gridy = 0
gridx = 0
repeat while TRUE
-- get one pixel from original image
pixel = pImage.getPixel (point (gridx,gridy))
-- create rectangle area
x2 = min (gridx+pRes,pWidth)
y2 = min (gridy+pRes,pHeight)
r = rect (gridx, gridy, x2, y2)
-- add location of the sprite
r = r + rect (pSpriteX, pSpriteY, pSpriteX, pSpriteY)
-- fill the square with the pixel
pStage.fill (r, pixel)
-- go to next square area
gridx = gridx + pRes
-- end of row
if gridx >= pWidth then
gridx = 0
gridy = gridy + pRes
if gridy >= pHeight then
-- end of image
exit repeat
end if
end if
end repeat
else if pRes > 0 then
-- copy real image to stage
pStage.copyPixels (pImage,sprite (me.spriteNum).rect,sprite (me.spriteNum).member.rect)
sprite (me.spriteNum).visible = TRUE
-- dont do anything anymore
pRes = 0
end if
end
今天在逛director-online时看到的,原文在这里:
www.director-online.com/buildArticle.php?id=980