Have to initialize our path on the first call to tick() now.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1976 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2002-11-20 05:33:20 +00:00
parent 58d32302c6
commit c8502d212c
2 changed files with 29 additions and 12 deletions
@@ -1,5 +1,5 @@
//
// $Id: ImageSprite.java,v 1.15 2002/10/08 21:03:37 ray Exp $
// $Id: ImageSprite.java,v 1.16 2002/11/20 05:33:20 mdb Exp $
package com.threerings.media.sprite;
@@ -240,9 +240,7 @@ public class ImageSprite extends Sprite
boolean moved = false;
// move the sprite along toward its destination, if any
if (_path != null) {
moved = _path.tick(this, timestamp);
}
moved = tickPath(timestamp);
// increment the display image if performing image animation
int nfidx = _frameIdx;
@@ -1,5 +1,5 @@
//
// $Id: Sprite.java,v 1.52 2002/11/05 03:38:59 mdb Exp $
// $Id: Sprite.java,v 1.53 2002/11/20 05:33:20 mdb Exp $
package com.threerings.media.sprite;
@@ -215,11 +215,10 @@ public abstract class Sprite extends AbstractMedia
*/
public void move (Path path)
{
// initialize the path
path.init(this, System.currentTimeMillis());
// and save it off
// save off this path
_path = path;
// we'll initialize it on our next tick thanks to a zero path stamp
_pathStamp = 0;
}
/**
@@ -266,10 +265,27 @@ public abstract class Sprite extends AbstractMedia
// documentation inherited
public void tick (long tickStamp)
{
// if we've a path, move the sprite along toward its destination
if (_path != null) {
_path.tick(this, tickStamp);
tickPath(tickStamp);
}
/**
* Ticks any path assigned to this sprite.
*
* @return true if the path relocated the sprite as a result of this
* tick, false if it remained in the same position.
*/
protected boolean tickPath (long tickStamp)
{
if (_path == null) {
return false;
}
// initialize the path if we haven't yet
if (_pathStamp == 0) {
_path.init(this, _pathStamp = tickStamp);
}
return _path.tick(this, tickStamp);
}
// documentation inherited
@@ -341,4 +357,7 @@ public abstract class Sprite extends AbstractMedia
/** When moving, the path the sprite is traversing. */
protected Path _path;
/** The timestamp at which we started along our path. */
protected long _pathStamp;
}