Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // declare these out of the render method
- SpriteBatch batch = renderer.getSpriteBatch();
- TiledMapTileLayer layer = (TiledMapTileLayer) map.getLayers().get("background");
- int sight = 7, halfSight = 6; // the sights in tiles
- Vector2 tmp = new Vector2(), tmp2 = new Vector2(); // not needed for rectangle shape, only for circle
- int tileWidth = (int) layer.getTileWidth(), tileHeight = (int) layer.getTileHeight();
- Texture black = new Texture("img/black.png"); // a 1x1 pixel black image
- // this goes in the render method
- int playerX = (int) (player.getX() / tileWidth), playerY = (int) (player.getY() / tileHeight);
- float distance; // not needed for a rectangle
- batch.begin();
- for(int x = 0; x < layer.getWidth(); x++)
- for(int y = 0; y < layer.getHeight(); y++) {
- distance = tmp.set(playerX, playerY).dst(tmp2.set(x, y)); // not needed for a rectangle
- if(distance > sight) // for a rectangle: if(x < playerX - sight || x > playerX + sight || y < playerY - sight || y > playerY + sight)
- batch.setColor(1, 1, 1, 1);
- else if(distance > halfSight) // for a rectangle: else if(x < playerX - halfSight || x > playerX + halfSight || y < playerY - halfSight || y > playerY + halfSight)
- batch.setColor(1, 1, 1, .5f);
- else
- continue;
- batch.draw(black, x * tileWidth, y * tileHeight, tileWidth, tileHeight);
- }
- batch.end();
- // don't forget to dispose black in dispose() if you actually loaded it in the screen
- black.dispose();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement