Advertisement
Guest User

Untitled

a guest
Jan 24th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. package com.snake.gui;
  2.  
  3. import com.snake.logic.Snake;
  4. import com.snake.logic.TilePosition;
  5. import com.snake.logic.World;
  6.  
  7. public class Renderer {
  8.  
  9. private final int widthpixel;
  10. private final World world;
  11. private final int heightpixel;
  12. private int tileSize;
  13.  
  14. public Renderer(World world, int tileSize) {
  15.  
  16. this.world = world;
  17. this.tileSize = tileSize;
  18. this.heightpixel = tileSize * (world.getHeight() + 2);
  19. this.widthpixel = tileSize * (world.getWidth() + 2);
  20.  
  21. }
  22.  
  23. public void render(World world, int[] pixels, int width, int height) {
  24.  
  25. renderBackground(this.world.getWidth(), this.world.getHeight(), pixels);
  26. renderSnake(this.world.getSnake(), pixels);
  27. renderApple(this.world.getApple(), pixels);
  28.  
  29. }
  30.  
  31. public void draw(int tileX, int tileY, int[] pixels, int r, int g, int b) {
  32. for (int dx = 0; dx < tileSize; dx++) {
  33. for (int dy = 0; dy < tileSize; dy++) {
  34. int pixelX = tileX * tileSize + dx;
  35. int pixelY = tileY * tileSize + dy;
  36. pixels[pixelY * widthpixel + pixelX] = color(r, g, b);
  37. }
  38. }
  39. }
  40.  
  41. public void renderBackground(int width, int height, int[] pixels) {
  42. for (int i = 0; i < width; i++) {
  43. draw(i, 0, pixels, 178,34,34);
  44. }
  45. for (int i = 0; i < height; i++) {
  46. draw(0, i, pixels, 178,34,34);
  47. }
  48. for (int i = 0; i < width; i++) {
  49. draw(i, width - 1, pixels, 178,34,34);
  50. }
  51. for (int i = 0; i < height; i++) {
  52. draw(height - 1, i, pixels, 178,34,34);
  53. }
  54. }
  55.  
  56. public void renderSnake(Snake snake, int[] pixels) {
  57. TilePosition head = snake.snakeParts.peekFirst();
  58. draw(head.x, head.y, pixels, 0, 191, 255);
  59. for (int i = 1; i < snake.snakeParts.size(); i++) {
  60. draw(snake.snakeParts.get(i).x, snake.snakeParts.get(i).y, pixels, 0, 205, 102);
  61. }
  62. }
  63.  
  64. public void renderApple(TilePosition apple, int[] pixels) {
  65. draw(apple.x, apple.y, pixels, 139, 101, 8);
  66. }
  67.  
  68. private static int color(int r, int g, int b) {
  69. return color(r, g, b, 255);
  70. }
  71.  
  72. private static int color(int r, int g, int b, int a) {
  73. return (a << 24) | (r << 16) | (g << 8) | b;
  74. }
  75.  
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement