From: ChadF <ch...@us...> - 2007-09-07 01:55:13
|
Update of /cvsroot/arianne/stendhal/src/games/stendhal/client/sprite In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv3653/src/games/stendhal/client/sprite Modified Files: SpriteStore.java Log Message: Changed sprite building to use pixel units instead of world units. Index: SpriteStore.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/sprite/SpriteStore.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** SpriteStore.java 23 Aug 2007 01:46:04 -0000 1.7 --- SpriteStore.java 7 Sep 2007 01:55:12 -0000 1.8 *************** *** 107,110 **** --- 107,129 ---- /** + * Create an animated sprite from a tile sprite using pixel units. + * + * @param sprite The image which contains the different + * frames. + * @param x The base X coordinate (in pixels). + * @param y The base Y coordinate (in pixels). + * @param frameCount The number of frames in this animation. + * @param width The tile width (in pixels). + * @param height The tile height (in pixels). + * @param delay The minimum delay between frames. + * + * @return An animated sprite. + */ + public AnimatedSprite getAnimatedSprite(final Sprite sprite, final int x, final int y, final int frameCount, final int width, final int height, final int delay) { + return new AnimatedSprite(getTiles(sprite, x, y, frameCount, width, height), delay, true); + } + + + /** * Create a sprite tile (sub-region) using tile units. * *************** *** 152,162 **** int pixelHeight = (int) (height * GameScreen.SIZE_UNIT_PIXELS); ! Sprite[] animatedSprite = new Sprite[frameCount]; ! for (int i = 0; i < frameCount; i++) { ! animatedSprite[i] = getTile(animImage, i * pixelWidth, row * pixelHeight, pixelWidth, pixelHeight); } ! return animatedSprite; } --- 171,202 ---- int pixelHeight = (int) (height * GameScreen.SIZE_UNIT_PIXELS); ! return getTiles(animImage, 0, row * pixelHeight, frameCount, pixelWidth, pixelHeight); ! } ! ! /** ! * Get sprite tiles from a sprite using pixel units. ! * ! * @param sprite The base image. ! * @param x The base X coordinate (in pixels). ! * @param y The base Y coordinate (in pixels). ! * @param count The number of tiles. ! * @param width The tile width (in pixels). ! * @param height The tile height (in pixels). ! * @param delay The minimum delay between frames. ! * ! * @return An array of sprites. ! */ ! public Sprite [] getTiles(final Sprite sprite, final int x, final int y, final int count, final int width, final int height) { ! Sprite [] sprites = new Sprite[count]; ! ! int tx = x; ! ! for (int i = 0; i < count; i++) { ! sprites[i] = getTile(sprite, tx, y, width, height); ! tx += width; } ! return sprites; } |