Sprites should not be initialized with coordinates, so I changed the

constructor to reflect that rather than requiring coordinates that are
then not really valid.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3214 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2004-11-12 02:16:04 +00:00
parent 01545355f5
commit 57d8d7a703
@@ -1,5 +1,5 @@
// //
// $Id: Sprite.java,v 1.67 2004/08/27 02:12:41 mdb Exp $ // $Id: Sprite.java,v 1.68 2004/11/12 02:16:04 mdb Exp $
// //
// Narya library - tools for developing networked games // Narya library - tools for developing networked games
// Copyright (C) 2002-2004 Three Rings Design, Inc., All Rights Reserved // Copyright (C) 2002-2004 Three Rings Design, Inc., All Rights Reserved
@@ -50,15 +50,20 @@ public abstract class Sprite extends AbstractMedia
*/ */
public Sprite () public Sprite ()
{ {
super(new Rectangle()); this(0, 0);
} }
/** /**
* Constructs a sprite with the supplied bounds. * Constructs a sprite with the supplied dimensions. Because
* sprite derived classes generally want to get in on the business
* when a sprite's location is set, it is not safe to do so in the
* constructor because their derived methods will be called before
* their constructor has been called. Thus a sprite should be fully
* constructed and <em>then</em> its location should be set.
*/ */
public Sprite (Rectangle bounds) public Sprite (int width, int height)
{ {
super(bounds); super(new Rectangle(0, 0, width, height));
} }
/** /**
@@ -363,6 +368,14 @@ public abstract class Sprite extends AbstractMedia
removeObserver(obs); removeObserver(obs);
} }
// documentation inherited
public void viewLocationDidChange (int dx, int dy)
{
if (_renderOrder >= HUD_LAYER) {
setLocation(_ox + dx, _oy + dy);
}
}
// documentation inherited // documentation inherited
public void shutdown () public void shutdown ()
{ {