Advertisement
Guest User

Screen

a guest
Sep 10th, 2013
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. package main;
  2.  
  3. import java.util.Random;
  4.  
  5. import main.Entity.projectile.Projectile;
  6. import main.Entity.mob.Player;
  7. import main.tile.Tile;
  8.  
  9. public class Screen {
  10.  
  11. public int width, height;
  12. public int[] pixels;
  13. public final int MAP_SIZE = 64;
  14. public final int MAP_SIZE_MASK = MAP_SIZE - 1;
  15. public int xOffset, yOffset;
  16. public int[] tiles = new int[MAP_SIZE * MAP_SIZE];
  17.  
  18. private Random random = new Random();
  19.  
  20. int xtime = 0, ytime = 0;
  21. int counter = 0;
  22.  
  23. public Screen(int width, int height) {
  24. this.width = width;
  25. this.height = height;
  26. pixels = new int[width * height];
  27.  
  28. for (int i = 0; i < MAP_SIZE * MAP_SIZE; i++) {
  29. tiles[i] = random.nextInt(0xffffff);
  30. }
  31.  
  32.  
  33. }
  34.  
  35. public void clear() {
  36. for (int i = 0; i < pixels.length; i++) {
  37. pixels[i] = 0;
  38. }
  39.  
  40. }
  41.  
  42. public void renderSprite(int xp, int yp, Sprite sprite, boolean fixed) {
  43. if (fixed) {
  44. xp -= xOffset;
  45. yp -= yOffset;
  46. }
  47. for (int y = 0; y < sprite.getHeight(); y++) {
  48. int ya = y + yp;
  49. for (int x = 0; x < sprite.getWidth(); x++) {
  50. int xa = x + xp;
  51. if (xa < 0 || xa >= width || ya < 0 || ya >= height) continue;
  52. pixels[x + y * width] = sprite.pixels[x + y * sprite.getWidth()];
  53. }
  54. }
  55.  
  56.  
  57. }
  58.  
  59.  
  60. public void renderTile(int xp, int yp, Sprite sprite) {
  61. xp -= xOffset;
  62. yp -= yOffset;
  63. for (int y = 0; y < sprite.SIZE; y++) {
  64. int ya = y + yp;
  65. for (int x = 0; x < sprite.SIZE; x++) {
  66. int xa = x + xp;
  67. if (xa < -sprite.SIZE || xa >= width || ya < 0 || ya >= height) break;
  68. if (xa < 0) xa = 0;
  69. pixels[xa + ya * width] = sprite.pixels[x + y * sprite.SIZE];
  70. }
  71. }
  72. }
  73.  
  74. public void renderPlayer(int xp, int yp, Sprite sprite) {
  75. xp -= xOffset;
  76. yp -= yOffset;
  77. for (int y = 0; y < 32; y++) {
  78. int ya = y + yp;
  79. for (int x = 0; x < 32; x++) {
  80. int xa = x + xp;
  81. if (xa < -32 || xa >= width || ya < 0 || ya >= height) break;
  82. if (xa < 0) xa = 0;
  83. int colour = sprite.pixels[x + y * 32];
  84. if (colour != 0xffFF00FF) pixels[xa + ya * width] = colour;
  85. }
  86. }
  87. }
  88.  
  89. public void renderProjectile(int xp, int yp, Projectile p) {
  90. xp -= xOffset;
  91. yp -= yOffset;
  92. for (int y = 0; y < p.getSpriteSize(); y++) {
  93. int ya = y + yp;
  94. for (int x = 0; x < p.getSpriteSize(); x++) {
  95. int xa = x + xp;
  96. if (xa < -p.getSpriteSize() || xa >= width || ya < 0 || ya >= height) break;
  97. if (xa < 0) xa = 0;
  98. int colour = p.getSprite().pixels[x + y * p.getSprite().SIZE];
  99. if (colour != 0xffFF00FF) pixels[xa + ya * width] = colour;
  100. }
  101. }
  102. }
  103.  
  104. public void setOffset(int xOffset, int yOffset) {
  105. this.xOffset = xOffset;
  106. this.yOffset = yOffset;
  107. }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement