SHARE
TWEET

SpriteShootout - Mapped optimized

a guest Jul 24th, 2011 163 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. protected void animate(
  2.         final Sprite sprite,
  3.         final SpriteRender spriteRender,
  4.         final int ballSize, final int ballIndex, final int batchSize, final int delta
  5. ) {
  6.         final float ballRadius = ballSize * 0.5f;
  7.         final float boundW = SCREEN_WIDTH - ballRadius;
  8.         final float boundH = SCREEN_HEIGHT - ballRadius;
  9.  
  10.         final Sprite[] sprites = sprite.asArray();
  11.         final SpriteRender[] spritesRender = spriteRender.asArray();
  12.         for ( int b = ballIndex, r = 0, len = (ballIndex + batchSize); b < len; b++, r++ ) {
  13.                 float dx = sprites[b].dx;
  14.                 float x = sprites[b].x;
  15.  
  16.                 x += dx * delta;
  17.                 if ( x < ballRadius ) {
  18.                         x = ballRadius;
  19.                         dx = -dx;
  20.                 } else if ( x > boundW ) {
  21.                         x = boundW;
  22.                         dx = -dx;
  23.                 }
  24.  
  25.                 sprites[b].dx = dx;
  26.                 sprites[b].x = x;
  27.                 spritesRender[r].x = x;
  28.  
  29.                 float dy = sprites[b].dy;
  30.                 float y = sprites[b].y;
  31.  
  32.                 y += dy * delta;
  33.                 if ( y < ballRadius ) {
  34.                         y = ballRadius;
  35.                         dy = -dy;
  36.                 } else if ( y > boundH ) {
  37.                         y = boundH;
  38.                         dy = -dy;
  39.                 }
  40.  
  41.                 sprites[b].dy = dy;
  42.                 sprites[b].y = y;
  43.                 spritesRender[r].y = y;
  44.         }
  45.  
  46. }
RAW Paste Data
Top