Advertisement
Guest User

Sprite.java

a guest
Dec 1st, 2015
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.05 KB | None | 0 0
  1. package h.c.rpg.graphics;
  2.  
  3. public class Sprite {
  4.  
  5.     private int x, y;
  6.     private SpriteSheet sheet;
  7.    
  8.     public final int SIZE;
  9.     public int[] pixels;
  10.  
  11.     // x: 0 - 15 y: 0 - 15 on sprite sheet
  12.     public static Sprite grass = new Sprite(16, 0, 0, SpriteSheet.tiles);       // grass is 16bit at 0, 0 on sprite sheet
  13.     public static Sprite flower = new Sprite(16, 0, 1, SpriteSheet.tiles);      // flower is 16bit at 0, 1 on sprite sheet
  14.     public static Sprite rock = new Sprite(16, 0, 2, SpriteSheet.tiles);        // rocks is 16bit at 0, 2 on sprite sheet
  15.     public static Sprite voidSprite = new Sprite(16, 0x1b87e0);         // sets voidSprite to color 0x1b87e0 - blue
  16.    
  17.     // Spawn Sprite s here
  18.     public static Sprite spawn_grass = new Sprite(16, 1, 4, SpriteSheet.spawn_level); // loads sprites from spawn_level sheet
  19.     public static Sprite spawn_leaves = new Sprite(16, 3, 0, SpriteSheet.spawn_level);
  20.     public static Sprite spawn_water = new Sprite(16, 2, 1, SpriteSheet.spawn_level);
  21.     public static Sprite spawn_water2 = new Sprite(16,3, 2, SpriteSheet.spawn_level);
  22.     public static Sprite spawn_wall = new Sprite(16, 0, 0, SpriteSheet.spawn_level);
  23.     public static Sprite spawn_wall2 = new Sprite(16, 3, 0, SpriteSheet.spawn_level);
  24.     public static Sprite spawn_wood_floor = new Sprite(16, 4, 0, SpriteSheet.spawn_level);
  25.     public static Sprite spawn_cobble_floor = new Sprite(16, 0, 1, SpriteSheet.spawn_level);
  26.     public static Sprite spawn_purp_wool_floor = new Sprite(16, 1, 2, SpriteSheet.spawn_level);
  27.        
  28.     // Player Sprite s here
  29.     public static Sprite player_forward = new Sprite(32, 0, 5, SpriteSheet.tiles);  
  30.     public static Sprite player_backward = new Sprite(32, 2, 5, SpriteSheet.tiles);
  31.     public static Sprite player_side = new Sprite(32, 1, 5, SpriteSheet.tiles);
  32.    
  33.     public static Sprite player_forward_1 = new Sprite(32, 0, 6, SpriteSheet.tiles);
  34.     public static Sprite player_forward_2 = new Sprite(32, 0, 7, SpriteSheet.tiles);
  35.    
  36.     public static Sprite player_side_1 = new Sprite(32, 1, 6, SpriteSheet.tiles);
  37.     public static Sprite player_side_2 = new Sprite(32, 1, 7, SpriteSheet.tiles);
  38.    
  39.     public static Sprite player_backward_1 = new Sprite(32, 2, 6, SpriteSheet.tiles);
  40.     public static Sprite player_backward_2 = new Sprite(32, 2, 7, SpriteSheet.tiles);
  41.    
  42.     public Sprite(int size, int x, int y, SpriteSheet sheet) {
  43.         SIZE = size;        // gives SIZE a value
  44.         pixels = new int[SIZE * SIZE];      // sets it to the size of the sprites
  45.         this.x = x * size;  // finds x coordinate in the spritesheet
  46.         this.y = y * size;  // finds y coordinate in the spritesheet
  47.         this.sheet = sheet;
  48.         load();
  49.     }
  50.  
  51.     public Sprite(int size, int color) {
  52.         SIZE = size;
  53.         pixels = new int[SIZE * SIZE];
  54.         setColor(color);
  55.     }
  56.  
  57.     private void setColor(int color) {
  58.         for (int i = 0; i < SIZE * SIZE; i++) {
  59.             pixels[i] = color;
  60.         }
  61.     }
  62.  
  63.     private void load() {               // four lines of code that find & take single sprites from spritesheet
  64.         for (int y = 0; y < SIZE; y++) {
  65.             for (int x = 0; x < SIZE; x++) {
  66.                 pixels[x + y * SIZE] = sheet.pixels[(x + this.x) + (y + this.y) * sheet.SIZE];
  67.             }
  68.         }
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement