Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.snake.gui;
- import com.snake.logic.Snake;
- import com.snake.logic.TilePosition;
- import com.snake.logic.World;
- public class Renderer {
- private final int widthpixel;
- private final World world;
- private final int heightpixel;
- private int tileSize;
- public Renderer(World world, int tileSize) {
- this.world = world;
- this.tileSize = tileSize;
- this.heightpixel = tileSize * (world.getHeight() + 2);
- this.widthpixel = tileSize * (world.getWidth() + 2);
- }
- public void render(World world, int[] pixels, int width, int height) {
- renderBackground(this.world.getWidth(), this.world.getHeight(), pixels);
- renderSnake(this.world.getSnake(), pixels);
- renderApple(this.world.getApple(), pixels);
- }
- public void draw(int tileX, int tileY, int[] pixels, int r, int g, int b) {
- for (int dx = 0; dx < tileSize; dx++) {
- for (int dy = 0; dy < tileSize; dy++) {
- int pixelX = tileX * tileSize + dx;
- int pixelY = tileY * tileSize + dy;
- pixels[pixelY * widthpixel + pixelX] = color(r, g, b);
- }
- }
- }
- public void renderBackground(int width, int height, int[] pixels) {
- for (int i = 0; i < width; i++) {
- draw(i, 0, pixels, 178,34,34);
- }
- for (int i = 0; i < height; i++) {
- draw(0, i, pixels, 178,34,34);
- }
- for (int i = 0; i < width; i++) {
- draw(i, width - 1, pixels, 178,34,34);
- }
- for (int i = 0; i < height; i++) {
- draw(height - 1, i, pixels, 178,34,34);
- }
- }
- public void renderSnake(Snake snake, int[] pixels) {
- TilePosition head = snake.snakeParts.peekFirst();
- draw(head.x, head.y, pixels, 0, 191, 255);
- for (int i = 1; i < snake.snakeParts.size(); i++) {
- draw(snake.snakeParts.get(i).x, snake.snakeParts.get(i).y, pixels, 0, 205, 102);
- }
- }
- public void renderApple(TilePosition apple, int[] pixels) {
- draw(apple.x, apple.y, pixels, 139, 101, 8);
- }
- private static int color(int r, int g, int b) {
- return color(r, g, b, 255);
- }
- private static int color(int r, int g, int b, int a) {
- return (a << 24) | (r << 16) | (g << 8) | b;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement