Commit Graph

50 Commits

Author SHA1 Message Date
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
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
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
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 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 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
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 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 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 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 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
Michael Bayne 6d350588c2 Added contains() and isMoving().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@836 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-12-19 07:43:09 +00:00
Michael Bayne 7d079a2bec Switch to new unified direction constants.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@818 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-12-17 03:34:04 +00:00
Walter Korman 182306a5e4 Commented out verbose logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@582 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-02 01:09:08 +00:00
Walter Korman d102a47f13 Abstracted character-sprite-related activity to the cast package in
preparation for character component compositing and other
character-related antics.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@575 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-26 01:17:22 +00:00
Walter Korman 6ff80f8a92 Don't merge dirty rectangles when moving a sprite if the rectangles
don't overlap.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@555 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-25 03:01:13 +00:00
Walter Korman 1dcad7f6b0 Create only a single dirty rectangle when a sprite moves. Cleaned up
bounds and rendered bounds discrepancies.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@552 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-25 01:39:38 +00:00
Walter Korman e4a101cfc2 On path completion, clear the path before observers are notified so
that they can assign a new path to the sprite should they choose to do
so.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@523 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-23 01:59:50 +00:00
Walter Korman 1c6e066444 Allow sprite sub-classes to modify their render offset more easily.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@513 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-22 18:13:09 +00:00
Walter Korman 3773da79a6 More work on object tiles. Revamped isometric scene rendering to
gather dirty sprites and objects and render after base and fringe tile
layers.  Add shadow tiles in the footprint of objects to make them
impassable.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@460 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-13 01:08:59 +00:00
Walter Korman 1cd07dc217 Notify sprites when a new path is begun. Made time-based animation
work.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@445 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-12 00:36:03 +00:00
Walter Korman ae5c9ba187 Minor comment edits.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@341 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-09-17 23:55:45 +00:00
Walter Korman b9ac6f9e24 Added getOrientation() and a more extensible toString(). Fixed
notifyObservers() header comment to use correct parameter name.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@340 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-09-17 23:25:26 +00:00
Michael Bayne 00fde3eeb3 Modified sprite event mechanism to used classes derived from SpriteEvent
rather than codes to indicate different types of events. Also modified
name of sprite observer callback as spriteChanged() implies that the
sprite actually changed which it may not have, whereas handleEvent()
doesn't imply anything other than the sprite observer is being asked to
deal with a sprite event.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@338 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-09-13 19:36:20 +00:00
Michael Bayne 780e39d4e9 Modified animation manager to provide a timestamp with every tick.
Modified sprite and path code to make use of these timestamps to determine
a sprite's progress along the path. Abstracted the path stuff so that
paths other than line segment paths can be cleanly implemented.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@337 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-09-13 19:10:26 +00:00
Walter Korman 4553c01d6d Handle all sprite events at the end of each SpriteManager.tick() so
that observers can do things like remove sprites without unhappy
side-effects.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@335 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-09-07 23:01:53 +00:00
Walter Korman 1c5d03317b Allow specifying the units associated with the sprite velocity.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@331 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-09-05 21:51:43 +00:00
Walter Korman 4f92224a8f Minor comment re-formatting.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@327 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-09-05 00:40:33 +00:00
Michael Bayne c2fd4ed6c3 Modified sprite management so that if in the course of processing its
dirty rectangles, an animated view has to expand the dirty region, it can
call back to the sprite manager to determine whether this new, expanded
dirty region includes sprites that weren't previously considered to be
dirty. If so, those sprites' rendered bounds are added to the dirty
rectangle list being processed so that they will be properly redrawn
(which may trigger more sprites to be included and so on).

Also modified sprite internals in a cleany uppy sort of way.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@309 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-22 02:14:57 +00:00
Michael Bayne 8aed4795e1 Modified sprite to use iterator rather than enumerator. Made x and y
members protected and provided accessors. Added toString() to Path.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@300 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-21 21:18:42 +00:00
Michael Bayne bbd1eb9ced Modified sprites not to take a sprite manager reference upon construction
but to have it set by the sprite manager when it is requested to manage
them.

Modified sprite manager to invalidate the view when sprites are added and
removed.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@295 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-21 19:40:30 +00:00
Walter Korman a99829818f Changed exit to portal. Limit tile bounds to something reasonable
when invalidating the scene view.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@270 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-16 18:05:17 +00:00
Walter Korman 8520b2e84b Allow setting the sprite velocity to be used when following a path.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@262 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-15 22:48:41 +00:00
Walter Korman affc3e82b7 Fixed up path-finding, path-following, and tile coordinate drawing.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@260 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-15 22:06:21 +00:00
Michael Bayne 3eea4dcaad Moved sprite stuff into media package, removed coupling between miso stuff
and sprite stuff by added some interfaces in the sprite stuff and
implementing them with the miso stuff.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@245 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-14 23:35:22 +00:00
Michael Bayne 0d0cb7f8ec Moved sprite stuff into media package. Need to abstract out and remove
miso dependencies.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@244 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-14 22:54:45 +00:00
Walter Korman b3e7f12f08 Work on dirty-tile rendering optimization. Added placeholder panels
to the viewer.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@187 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-07 18:29:18 +00:00
Walter Korman 5d5b1cf0a4 Ignore path nodes if we're already there.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@170 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-04 00:36:33 +00:00
Walter Korman c41c097cd4 Create and have the sprite follow a path rather than explicitly
setting the sprite destination.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@152 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-02 20:43:03 +00:00
Walter Korman efb1881507 Use a polygon to determine whether a sprite is within a particular
tile.  Updated scene/tile dimensions and default scene to use 64x48
tiles.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@151 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-02 18:59:00 +00:00
Walter Korman 1032b8f325 Moved much of the IsoSceneView data into the IsoSceneModel. More work
on sprites and animation.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@138 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-08-02 00:42:02 +00:00
Walter Korman 82831f3baf Work on rendering a character in the scene and moving them about with
mouse-click events.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@134 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-07-31 01:38:28 +00:00
Walter Korman 11800e8a43 Added simple test character sprite to viewer application, and render
any involved sprites in IsoSceneView after each set of tiles is drawn.
Exit the viewer and editor applications on window close.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@133 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-07-30 15:38:52 +00:00
Walter Korman c76ae0ccf5 Initial version of mostly-placeholder sprite-related classes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@132 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-07-28 01:50:07 +00:00