Commit Graph

107 Commits

Author SHA1 Message Date
Michael Bayne d5dbc514ca Use observer lists.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1906 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-05 20:52:39 +00:00
Michael Bayne 0608a27c67 Set the sprite's location to exactly what it needs to be in order for its
image to render in the upper left of where we want it.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1897 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-05 03:40:06 +00:00
Michael Bayne 118f6b2363 Provide access to the x and y origin offsets.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1896 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-05 03:38:59 +00:00
Ray Greenwell a0730067ec Pulled out gobs of Sprite/Animation functionality into AbstractMedia.
Pulled out gobs of SpriteManager/AnimationManager functionality into
  AbstractMediaManager.
The big change: sprites can have their render order fine-tuned like
animations.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1787 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-08 21:03:37 +00:00
Michael Bayne cecb5fbef5 We'll be needing the -- not the ++.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1722 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-20 02:19:53 +00:00
Michael Bayne 7e45b58f50 Modified tick() order to prevent unhappy business if a sprite removes
itself in tick().


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1721 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-20 02:12:33 +00:00
Michael Bayne 369900bf1a Formatting.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1697 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-17 20:21:19 +00:00
Michael Bayne c08067ac1f Added convenience constructor for simple single frame image sprite.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1693 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-17 19:14:59 +00:00
Michael Bayne 380fa50610 Moved MultiFrameImage and friends from media.sprite into media.util
because they'll be used for both sprites and animations.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1692 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-17 19:11:13 +00:00
Ray Greenwell 5e286e5bab added TIME_SEQUENTIAL animation mode which shows frame 0 first, and
for the full duration.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1687 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-17 02:34:05 +00:00
Michael Bayne 05522ebf66 Allow padding to be specified for sprite icons.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1678 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-13 04:50:31 +00:00
Michael Bayne db0c1b59b8 It's not kosher to set a sprite's location until after it is fully
constructed. The reason being that derived classes want to override things
like updateRenderOrigin() which should be called every time the sprite's
location is set, but if we do it in the base class constructor, a derived
class's updateRenderOrigin() will be called before the derived class's
constructor has been called. This is not good. Neither was the existing
code which simply half-assed a location change by updating the sprite's
origin position but not calling updateRenderOrigin(), leaving things
generally confuzzled.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1559 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-07-08 21:15:35 +00:00
Walter Korman 627ee5a1db Javadoc fixes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1557 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-07-02 23:15:53 +00:00
Michael Bayne baab1443ef Added method for obtaining access to an immutable list of the sprites
currently registered with the sprite manager.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1543 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-26 02:36:50 +00:00
Michael Bayne a930ae0f0c Added clearSprites() for clearing all sprites in one fell swoop.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1542 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-25 17:31:17 +00:00
Michael Bayne 1f80cf9805 Cleaned up some sprite business: better documented various things, changed
local member names to reflect their actual functionality, flipped the sign
of the origin offset so that it's an offset rather than a negative offset.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1512 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-20 21:42:53 +00:00
Walter Korman b09989f928 Added getLabel().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1509 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-20 09:01:28 +00:00
Michael Bayne 5db81eb137 Don't check for sprite collisions presently. We'll have to revisit this
when we actually want to use the collision support.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1503 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-20 00:54:53 +00:00
Michael Bayne 330767e193 Cleaned up a few things related to render origin. If a derived class wants
the render origin to be other than (_x, _y) it can update (_rxoff, _ryoff)
when it is appropriate to do so, but we don't really need an overridden
method to do that.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1500 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-19 23:30:06 +00:00
Michael Bayne 7253a68c7c Death, taxes and refactoring: seriously revamped the low-level media code
to handle scrolling in a much cleaner and happier way. There's now a
VirtualMediaPanel which operates in virtual coordinates and can be made to
"view" any location in those virtual coordinates. By changing the view,
the view can be scrolled and the view can be made to center on a pathable
(generally a sprite) which will cause it to scroll around as the pathable
moves around in the virtual coordinate space.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1475 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-18 22:25:33 +00:00
Michael Bayne d05d0c8558 Added getPath() to provide access to the path being followed by the
sprite.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1439 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-11 05:56:44 +00:00
Ray Greenwell b9ba9b3d66 bugfix: ImageSprites constructed with their frames were hosed and never
got drawn.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1425 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-05 23:38:18 +00:00
Michael Bayne ccbc47a7de Separated path code from sprite code so that we can have other things
follow a path (specifically, I want to allow the media panel to be
"scrolled" along a path).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1409 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-31 03:38:03 +00:00
Michael Bayne 7c4f86e63a pathBeginning() and pathCompleted() need to be public so that we can
create paths outside the media.sprite package.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1407 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-29 23:27:14 +00:00
Michael Bayne 95daba5bee Offset not Offsets.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1366 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-16 03:00:29 +00:00
Michael Bayne 612166a572 Created an Icon implementation that can be used to render sprites anywhere
that icons can be rendered.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1365 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-16 02:58:59 +00:00
Michael Bayne 47e38b4fa8 Changed MultiFrameImage around so that it retains total control over its
internal images and doesn't necessarily need to decode them into multiple
images or even have actual images at all. This cleans things up and paves
the way for our "trimmed" image support which is forthcoming.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1335 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-04 19:35:31 +00:00
Michael Bayne 23d170c83e Added support for pausing a media panel which pauses all sprites and
animations currently operating therein. (It doesn't pause scrolling which
I suppose I'll have to fix at some point if we ever need it.)


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1292 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-25 16:23:31 +00:00
Michael Bayne cc6a9d00ef Major low-level rendering rethink. There will be much follow-on cleanup.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1286 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-23 01:16:28 +00:00
Michael Bayne 42dc17a474 Started refactoring code to allow derived classes to expand the bounds of
the sprite to contain more than just the image. I didn't go all the way
though because I started looking at the stuff to handle render origin and
render offset and couldn't bring myself to add another offset into the mix
so it'll have to wait until I can give it some more serious thought and
perhaps simplify what we've got.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1264 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-17 15:52:49 +00:00
Michael Bayne f458a84d9e Translation needs to go the other way.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1255 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-16 02:29:05 +00:00
Michael Bayne a814589499 Get the sprites involved in scrolling; they now either scroll with the
view or remain fixed relative to the scrolling view (the default and also
the old behavior).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1253 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-15 23:10:24 +00:00
Michael Bayne be1ef2c1a2 Allow specification of fps in floating point.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1162 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-27 21:51:15 +00:00
Walter Korman 76cff072be Split Sprite into Sprite and ImageSprite. Added LabelSprite. Cleaned up
directional constant usage.  Added ability to render sprites in two
distinct layers.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1132 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-16 03:15:06 +00:00
Michael Bayne 22d0839b72 Not to freak out if we have no frames.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1083 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-03-04 22:47:06 +00:00
Michael Bayne 3dbf935e3a Render all sprites that intersect the repaint bounds, not just the ones
that are contained within the bounds.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1081 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-28 23:25:15 +00:00
Michael Bayne 137e9e9ea8 Revampola! Moved the code that handles viewport offset into the animated
panel; restructured things so everyone deals with "view" coordinates
rather than screen coordinates and the animated panel takes care of doing
the final translation before rendering.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1065 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-21 06:01:29 +00:00
Michael Bayne fec59f61a8 Dirty the old frame bounds and the new frame bounds when our frame image
is replaced.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1061 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-20 03:13:57 +00:00
Michael Bayne ee3532f6f1 Added mechanism by which the sprite manager can be informed that the view
on which its sprites are rendered was scrolled so that it can generate the
appropriate dirty rectangles or update its sprite's positions.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1045 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 19:55:14 +00:00
Michael Bayne 958cb213d5 Blarg. Have to tell the sprite manager about the viewport offset when
we're using it to render sprites into a view that is being displayed in a
viewport that is smaller than the actual size of the view. Oh the
jockeying.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1041 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 07:41:36 +00:00
Michael Bayne fc58eec429 Whoops, missed a change.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1032 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 03:58:37 +00:00
Michael Bayne 9b9211de16 Use a SortableArrayList instead of going for object creation mania every
time we sort the sprite list.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1031 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 03:57:53 +00:00
Michael Bayne 65900ecefa Added getHitSprites() which populates a list with the sprites that are
"hit" by a particular pixel as determined by Sprite.hitTest().


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@898 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-31 01:04:13 +00:00
Michael Bayne c80ddcee22 Added hit test which checks first to see if a pixel is in a sprite's
bounding box and then checks to see that the pixel in question is occupied
by a non-transparent pixel in the sprite's image.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@897 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-31 01:03:45 +00:00
Walter Korman d6b17cd36c Reduced the specificity of the object detailing the bounds within which to
render sprites to a Shape rather than a Polygon.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@889 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-22 20:09:02 +00:00
Walter Korman 651ff37b66 Javadoc edits.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@888 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-22 18:58:52 +00:00
Walter Korman aa574a8182 Added support for animations to the animation manager. Moved animation
classes into their own package.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@849 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-11 16:17:34 +00:00
Walter Korman e3c4fd02b7 Initial work on making use of full-screen exclusive mode and additional
rendering optimizations available in JDK 1.4.  Use a BufferStrategy, and
changed AnimatedPanel to extend Canvas rather than JPanel.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@847 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-08 22:16:59 +00:00
Walter Korman df14615e11 Initialize the path before saving it off so that the animation manager
can't attempt to move a sprite along a path that isn't fully prepared.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@846 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-07 23:51:52 +00:00
Walter Korman b13cdabeb0 Improved error handling when creating offscreen image for
double-buffering.  Don't paint the panel if it's not yet been laid out.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@845 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-07 23:05:39 +00:00