Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main;
- import java.util.Random;
- import main.Entity.projectile.Projectile;
- import main.Entity.mob.Player;
- import main.tile.Tile;
- public class Screen {
- public int width, height;
- public int[] pixels;
- public final int MAP_SIZE = 64;
- public final int MAP_SIZE_MASK = MAP_SIZE - 1;
- public int xOffset, yOffset;
- public int[] tiles = new int[MAP_SIZE * MAP_SIZE];
- private Random random = new Random();
- int xtime = 0, ytime = 0;
- int counter = 0;
- public Screen(int width, int height) {
- this.width = width;
- this.height = height;
- pixels = new int[width * height];
- for (int i = 0; i < MAP_SIZE * MAP_SIZE; i++) {
- tiles[i] = random.nextInt(0xffffff);
- }
- }
- public void clear() {
- for (int i = 0; i < pixels.length; i++) {
- pixels[i] = 0;
- }
- }
- public void renderSprite(int xp, int yp, Sprite sprite, boolean fixed) {
- if (fixed) {
- xp -= xOffset;
- yp -= yOffset;
- }
- for (int y = 0; y < sprite.getHeight(); y++) {
- int ya = y + yp;
- for (int x = 0; x < sprite.getWidth(); x++) {
- int xa = x + xp;
- if (xa < 0 || xa >= width || ya < 0 || ya >= height) continue;
- pixels[x + y * width] = sprite.pixels[x + y * sprite.getWidth()];
- }
- }
- }
- public void renderTile(int xp, int yp, Sprite sprite) {
- xp -= xOffset;
- yp -= yOffset;
- for (int y = 0; y < sprite.SIZE; y++) {
- int ya = y + yp;
- for (int x = 0; x < sprite.SIZE; x++) {
- int xa = x + xp;
- if (xa < -sprite.SIZE || xa >= width || ya < 0 || ya >= height) break;
- if (xa < 0) xa = 0;
- pixels[xa + ya * width] = sprite.pixels[x + y * sprite.SIZE];
- }
- }
- }
- public void renderPlayer(int xp, int yp, Sprite sprite) {
- xp -= xOffset;
- yp -= yOffset;
- for (int y = 0; y < 32; y++) {
- int ya = y + yp;
- for (int x = 0; x < 32; x++) {
- int xa = x + xp;
- if (xa < -32 || xa >= width || ya < 0 || ya >= height) break;
- if (xa < 0) xa = 0;
- int colour = sprite.pixels[x + y * 32];
- if (colour != 0xffFF00FF) pixels[xa + ya * width] = colour;
- }
- }
- }
- public void renderProjectile(int xp, int yp, Projectile p) {
- xp -= xOffset;
- yp -= yOffset;
- for (int y = 0; y < p.getSpriteSize(); y++) {
- int ya = y + yp;
- for (int x = 0; x < p.getSpriteSize(); x++) {
- int xa = x + xp;
- if (xa < -p.getSpriteSize() || xa >= width || ya < 0 || ya >= height) break;
- if (xa < 0) xa = 0;
- int colour = p.getSprite().pixels[x + y * p.getSprite().SIZE];
- if (colour != 0xffFF00FF) pixels[xa + ya * width] = colour;
- }
- }
- }
- public void setOffset(int xOffset, int yOffset) {
- this.xOffset = xOffset;
- this.yOffset = yOffset;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement