@Override
	public void run(){
		if(state == GameState.Running){
			while(true){
				robot.update();
				if(robot.isJumped()){
					currentSprite = characterJumped;
				} else if (robot.isJumped() == false && robot.isDucked() == false){
					currentSprite = anim.getImage();
				}
				
				ArrayList projectiles = robot.getProjectiles();
				for(int i = 0; i < projectiles.size(); i++){
					Projectile p = (Projectile) projectiles.get(i);
					if(p.isVisible() == true){
						p.update();
					} else {
						projectiles.remove(i);
					}
				}
				
				updateTiles();
				hb.update();
				hb2.update();
				bg1.update();
				bg2.update();
				
				animate();
				repaint();
				
				try{
					Thread.sleep(17);
				} catch (InterruptedException e){
					e.printStackTrace();
				}
				if(robot.getCenterY() > 500){
					state = GameState.Dead;
				}
			}
		}
	}