Commit Graph

179 Commits

Author SHA1 Message Date
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 3e68fd8994 Clear out our back buffer when we're validated (as we probably changed
sizes).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1037 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 07:19:04 +00:00
Michael Bayne 7db44c5ee3 Let the animated panel handle invalidating the regions exposed by
scrolling so that it can do so with the actual dimensions of the panel
(the scene view only knows how big its model wants to be). Changed
scrollView to viewWillScroll to more accurately reflect what's going on.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1036 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 05:03:17 +00:00
Michael Bayne f2f6407c1e Need to account for negative scrolling deltas.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1034 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 04:45:14 +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 a6f63ee873 Need to set the absolute value of the velocity.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1030 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 03:57:30 +00:00
Michael Bayne 3125782a15 Modifications to get scrolling working again. It's a bit smoother, but
we can do better.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1026 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 01:42:28 +00:00
Michael Bayne 63a32a6332 Modified rendering to use a hand managed volatile image as a back buffer
instead of using a buffer strategy. This will shortly be extended to
support more efficient scrolling as well.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1021 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-19 01:23:56 +00:00
Michael Bayne 06f9ac0c31 Disable scrolling when speed is set to zero mspp.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1019 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-18 06:05:59 +00:00
Michael Bayne fbc39605e7 Enhancements to support scrolling.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1011 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-17 23:40:43 +00:00
Michael Bayne b1109c8370 The animated view is now passed its invalid rect count in
paintImmediately() so that it can figure out if it's being painted solely
to facilitate scrolling or because there are dirty regions.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1010 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-17 23:39:32 +00:00
Michael Bayne 7c5e5dbce9 Added support for animated views that scroll. The animation manager
attempts to tune its refresh interval to one that allows the animated view
to scroll in even pixel counts each time through the render loop.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1009 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-17 23:38:18 +00:00
Michael Bayne 8db0bce2a7 Removed warning message because this is a normal occurrence.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1003 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-17 07:13:59 +00:00
Michael Bayne a00e7e5214 Automatically create a SpriteManager unless otherwise instructed; added
methods for starting and stopping the animation manager associated with an
animated panel.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@995 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-13 18:48:56 +00:00
Michael Bayne 0f47b72787 Repackaging! Changed a bunch of foo.tools.bar to foo.bar.tools and brought
some other things up to date with changes that had been made to that
effect previously. I love the vast sweeping changes that come along with a
change of mind.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@933 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-05 20:29:10 +00:00
Michael Bayne 9b17dafd03 Created an icon manager for loading icons from tilesets using a
configuration file to map icon set identifiers to tileset images and
metrics.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@924 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-03 22:43:54 +00:00
Walter Korman ffdff82b42 Added setStartTime() to allow synchronizing multiple fade animations to
the same starting time.  Constrain the alpha to a valid range before
getting the composite object.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@908 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-31 17:35:41 +00:00
Walter Korman 04ab7fe8c1 Added support for expiring an explode animation after a set time delay.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@907 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-31 17:34:20 +00:00
Michael Bayne f1f4e9c59a Added hitTest() which determines whether or not a point touches a
non-transparent pixel in an object's image.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@901 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-31 02:08:52 +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 5510400f45 Pass a Graphics2D to AnimatedPanel.render() so that sub-classes needn't
explicitly typecast it on their own, as they are almost invariably wont to
do.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@890 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-23 17:10:41 +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
Michael Bayne ec192b88d3 Added back overridden update() because Canvas.update() clears its whole
self when update is called which is seriously undesirable.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@885 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-19 07:09:55 +00:00
Michael Bayne c03126153d Automatically create an animation manager for the animated panel; modified
the code that interacts with AWT repaint mechanisms to play nicely and
communicate AWT's repaint desires to the animation manager to be queued up
with our normal repainting.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@883 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-19 07:04:28 +00:00
Michael Bayne 408b3b6cb4 Make sure we have a sprite manager before talking to it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@882 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-19 07:01:19 +00:00
Michael Bayne df0ec942bd Added ability to construct animation manager without sprite manager and
then provide the reference later.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@881 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-19 07:00:40 +00:00
Walter Korman 5366ae4ca3 Allow rendering explosion chunks with either image portions or rectangles
of a specified color.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@879 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-19 06:06:05 +00:00
Walter Korman 8393055218 Changed default transparency of blank images to BITMASK rather than
TRANSLUCENT since that's what we prefer.  Made ImageManager use ImageUtil
to create blank images.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@871 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-18 17:55:43 +00:00
Walter Korman d6aa41396b Added ImageUtil.createImage() to create blank images that are compatible
with the destination screen device.  Updated existing code that previously
created buffered images directly to reference ImageUtil.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@870 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-18 17:48:11 +00:00
Walter Korman ea88a4dd68 Simple animation that renders rain drops for a specified period of time.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@869 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-18 16:22:23 +00:00
Michael Bayne c6e4b73851 Added comments to some code that needs to be fixed later.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@868 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-17 23:43:14 +00:00
Michael Bayne b9f77beded Construct resource manager according to new method.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@866 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-16 03:01:45 +00:00
Walter Korman f70fc3aa60 Each image chunk has its own velocity and follows a trajectory path
impacted by a specifiable y-axis acceleration.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@856 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-15 18:10:25 +00:00
Walter Korman c25c66493e Pass the starting time for the animation in the constructor to allow
application code to make sure all animations are in sync, and to avoid
repeated calls to System.currentTimeMillis().


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@854 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-15 02:20:02 +00:00
Walter Korman 70ac159095 Rotate the image chunks as they fly away. Made chunk count configurable.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@851 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-11 19:37:49 +00:00
Walter Korman e78607da60 Commented out verbose logging. Minor clean-up.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@850 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-01-11 16:53:34 +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
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 c6b7212e57 Automatically start up the animation manager, regardless of whether or not
we're showing (the animated panel doesn't choke any more if it's asked to
render when not showing). Also leave the animation manager running until
it is explicitly shut down.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@833 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-12-18 09:46:07 +00:00
Michael Bayne 861e8ffb98 Added support for explicitly specifying the offset into the object tile
image that should be centered at the origin when the tile is rendered.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@826 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-12-18 08:37:54 +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
Michael Bayne 75c9c55dc4 Moved setVelocity() into the Path interface.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@799 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-12-16 08:05:46 +00:00
Michael Bayne 64a5b78526 Added toString().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@798 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-12-16 08:05:20 +00:00