Hey -

> What's the best way of scaling a sprite in lingo while keeping the same
> centerpoint, ie

Strangely enough, I have a function for that very purpose:

-- Scale the given rect by given factor, from specified registration point
-- Copyright (c) 2001 Kendall Anderson, [EMAIL PROTECTED]
-- http://invisiblethreads.com

-- example:
-- ie: rNew = me._ScaleRect(sprite(5).rect, 3.5, #center)
-- registration points:
-- #center
-- #ul = upper left, #lr = lower right, etc.

-- returns the newly scaled rect

on _ScaleRect rSrc, dFactor, sRegpoint

  dW = rSrc.width
  dH = rSrc.height

  dLeft = rSrc.left
  dRight = rSrc.right
  dTop = rSrc.top
  dBot = rSrc.bottom

  dXc = dLeft + (dW/2)
  dYc = dTop + (dH/2)


  dNewW = dW * dFactor
  dNewH = dH * dFactor

  case (sRegpoint) of
    #center: rNew = rect(dXc - (dNewW/2), dYc - (dNewH/2), dXc - (dNewW/2) +
dNewW, dYc - (dNewH/2) + dNewH)
    #ul:     rNew = rect(dLeft, dTop, dLeft + dNewW, dTop + dNewH)
    #ur:     rNew = rect(dRight - dNewW, dTop, dRight, dTop + dNewH)
    #ll:     rNew = rect(dLeft, dBot - dNewH, dLeft + dNewW, dBot)
    #lr:     rNew = rect(dRight - dNewW, dBot - dNewH, dRight, dBot)
  end case

  return rNew

end


Hope it helps..

Kendall


[To remove yourself from this list, or to change to digest mode, go to 
http://www.penworks.com/lingo-l.cgi  To post messages to the list, email 
[EMAIL PROTECTED]  (Problems, email [EMAIL PROTECTED]). Lingo-L is for 
learning and helping with programming Lingo.  Thanks!]

Reply via email to