View difference between Paste ID: uWBTsZng and zChuNkbi
SHOW: | | - or go back to the newest paste.
1
public class Screen {
2
	
3
	public int width, height;
4
	public int[] pixels;
5
	public final int MAP_SIZE = 64;
6
	public final int MAP_SIZE_MASK = MAP_SIZE - 1;
7
	public int xOffset, yOffset;
8
	public int[] tiles = new int[64 * 64];
9
	private Random random = new Random();
10
	
11
	public Screen(int width,int height) {
12
		this.width = width;
13
		this.height = height; 
14
		pixels = new int[width * height]; // 50,400
15
		
16
		for (int i =0; i < MAP_SIZE * MAP_SIZE; i++) {
17
			tiles[i] = random.nextInt(0xffffff);
18
		}	
19
	}
20
	
21
	public void clear() {
22
		for(int i = 0; i < pixels.length; i++){
23
			pixels[i] = 0;
24
		}
25
	}	
26
		
27
	public void renderTile(int xp, int yp, Tile tile){
28
		xp -= xOffset;
29
		yp -= yOffset;
30
		for (int y = 0; y < tile.sprite.SIZE; y++){
31
			int ya = y + yp;
32
			for (int x = 0; x < tile.sprite.SIZE; x++){
33
				int xa = x + xp;
34
				if(xa < -tile.sprite.SIZE || xa >= width || ya < 0 || ya >= height) break;
35
				if(xa < 0) xa = 0; 
36
				if(ya < 0) ya = 0; 
37
				pixels[xa + ya * width] = tile.sprite.pixels[x + y * tile.sprite.SIZE];
38
			}
39
		}
40
	}
41
	
42
	public void setOffset(int xOffset, int yOffset) {
43
		this.xOffset = xOffset;
44
		this.yOffset = yOffset;
45
	}
46
	
47
}