Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package j2dgame.gfx;
- public class Screen {
- public static final int MAP_WIDTH = 64;
- public static final int MAP_WIDTH_MASK = MAP_WIDTH - 1;
- public int[] pixels;
- public int xOffset = 0;
- public int yOffset = 0;
- public int width;
- public int height;
- public SpriteSheet sheet;
- public Screen(int width, int height, SpriteSheet sheet) {
- this.width = width;
- this.height = height;
- this.sheet = sheet;
- pixels = new int[width * height];
- }
- public void render(int xPos, int yPos, int tile, int color) {
- xPos -= xOffset;
- yPos -= yOffset;
- int xTile = tile % 32;
- int yTile = tile / 32;
- int tileOffset = (xTile << 3) + (yTile << 3) * sheet.width;
- for (int y = 0; y < 8; y++) {
- if (y + yPos < 0 || y + yPos >= height)
- continue;
- int ySheet = y;
- for (int x = 0; x < 8; x++) {
- if (x + xPos < 0 || x + xPos >= width)
- continue;
- int xSheet = x;
- int col = (color >> (sheet.pixels[xSheet + ySheet * sheet.width
- + tileOffset] * 8)) & 255;
- if (color < 255)
- pixels[(x + xPos) + (y + yPos) * width] = col;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement