Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Core;
- import java.awt.Color;
- import java.awt.Graphics2D;
- import java.awt.Rectangle;
- import java.awt.event.KeyEvent;
- import java.util.HashSet;
- import java.util.Set;
- import Base.Game;
- import Base.Input;
- import Base.Timer;
- import Base.custom.IntArr;
- import Base.custom.PairMap;
- public class RunGame {
- Camera cam = new Camera();
- World world;
- public RunGame(){
- world = new World();
- }
- Timer t = new Timer(500);
- int x = 0;
- int y = 0;
- boolean keydown = false;
- public void update(){
- cam.update();
- if(!keydown && Input.getInput().isKeyDown(KeyEvent.VK_G)){
- keydown = true;
- x+=1;
- y = 0;
- Set<IntArr> pos = new HashSet<>();
- for(int o = 0; o < 3; o++){
- for(int i =0; i < 3; i++){
- pos.add(new IntArr(x+i,y+o));
- }
- }
- world.append(pos);
- }
- if(keydown && !Input.getInput().isKeyDown(KeyEvent.VK_G)){
- keydown = false;
- }
- }
- public void render(Graphics2D g){
- g.setColor(Color.BLUE);
- int scale = 4;
- Rectangle gamescreen = new Rectangle(0,0,Game.size.width*scale,Game.size.height*scale);
- for(Rectangle room: world.roomObjects.getKeys()){
- if(gamescreen.intersects((room.x*scale)+cam.xOff,(room.y*scale)+cam.yOff,room.width*scale,room.height*scale)){
- int[][] roomObjs = world.roomObjects.get(room);
- for(int o = 0; o < roomObjs.length; o++){
- for(int i = 0; i < roomObjs[o].length; i++){
- int nX = room.x+(i*world.div);
- int nY = room.y+(o*world.div);
- int nW = world.div;
- int nH = world.div;
- if(gamescreen.intersects(nX*scale+cam.xOff,nY*scale+cam.yOff,nW*scale,nH*scale)){
- g.setColor(Color.darkGray.darker());
- g.fillRect(nX*scale+cam.xOff,nY*scale+cam.yOff,nW*scale,nH*scale);
- switch(roomObjs[o][i]){
- case 1:
- g.setColor(Color.red.darker());
- break;
- case 2:
- g.setColor(Color.green);
- break;
- default:
- g.setColor(Color.BLUE);
- break;
- }
- g.fillRect(nX*scale+cam.xOff+2,nY*scale+cam.yOff+2,nW*scale-4,nH*scale-4);
- }
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement