title: LWJGL quad drawn from a button press disappearing
body: <p>I am trying to draw a quad on click. Everytime I click on the screen, the quad flashes on the screen then disappears. If I keep clicking, it keeps flashing. Is it because of the order I am starting my methods? Thanks! </p>
  
  <p>Edited with update code... I get the square to appear on click, but it will not stay. It follows the mouse across the screen</p>
  
  <pre><code>package main;
  import static org.lwjgl.opengl.GL11.*;
  
  import java.awt.event.MouseEvent;
  
  import org.newdawn.slick.GameContainer;
  import org.newdawn.slick.Input;
  import org.newdawn.slick.SlickException;
  import org.newdawn.slick.openal.*;
  import org.newdawn.slick.opengl.Texture;
  import org.newdawn.slick.tiled.TiledMap;
  
  import static helper.Artist.*;
  import helper.Artist.*;
  
  import org.lwjgl.LWJGLException;
  import org.lwjgl.input.Keyboard;
  import org.lwjgl.input.Mouse;
  import org.lwjgl.opengl.*;
  
  public class GameWindow {
      public TiledMap map;
      public TiledMap menu;
      private int sx,sy;
      public int x,y;
      public static int fx;
      public static int fy;
      public int fxy;
      public boolean place = true;
  public static enum states{
  
          MAIN, GAME; }
  
      public states state = states.MAIN;
  
  
  
  
      public void render(){
          switch(state){
          case MAIN:
  
  
              try {
                  init();
                  update();
                  menu.render(0, 0);
              } catch (SlickException e1) {
                  // TODO Auto-generated catch block
                  e1.printStackTrace();
              }
              break;
          case GAME:
              try {
                  map = new TiledMap("res/map.tmx");
                  map.render(0,0);
                  Draw();
                  if(place == false){
                      Quad();
  
                  }
  
                  update();
                  //Draw();
                  System.out.println(place);
  
                  glBegin(GL_QUADS);
                      glVertex2i(x*64,y*64);
                      glVertex2i(x * 64 + 64, y*64);
                      glVertex2i(x*64 + 64,y*64 + 64);
                      glVertex2i(x*64,y*64 + 64);
                  glEnd();
  
              } catch (SlickException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
  
  
  
          }
  
  
      }
  
  
      public void Draw(){
          fx = this.fx;
          fy = this.fy;
  
          while(Mouse.next()){
              if(Mouse.getEventButtonState()){
                  if(Mouse.getEventButton() == 0){
                  System.out.println("Click");
                  int iy = Mouse.getY();
                   fy = (iy+0x20)&gt;&gt;0x06;
  
                  int ix = Mouse.getX();
                   fx = (ix+0x20)&gt;&gt;0x06;
  
  
                  place = false;
  
  
              }else{
  
                  place = true;
              }
  
          }} 
  
  
  
      }
  
  
      public void Quad(){
  
      glBegin(GL_QUADS);
          glVertex2i(fx*64,fy*64);
          glVertex2i(fx * 64 + 64, fy*64);
          glVertex2i(fx*64 + 64,fy*64 + 64);
          glVertex2i(fx*64,fy*64 + 64);
      glEnd();
      }
  
      public void update(){
  
  
  
  
          int object = map.getLayerIndex("Tile Layer 2");
  
          //System.out.println(x);
          map.getTileId(0, 0, object);
  
          while(Keyboard.next()){
  
          if(Keyboard.getEventKeyState()){
              if(Keyboard.getEventKey() == Keyboard.KEY_DOWN){
              //System.out.println(y);
              if(map.getTileId(x , y+1, object) ==0){
  
                  y++;
                  //System.out.println(y);
              }
  
          }}
          if(Keyboard.isKeyDown(Keyboard.KEY_UP)){
              System.out.println(y);
              if(y&gt;=1){
                  if(map.getTileId(x, y-1, object) ==0){
  
                      y--;
                  System.out.println(y);
  
                  }
              }
          }
          if(Keyboard.isKeyDown(Keyboard.KEY_LEFT)){
              System.out.println(x);
              if(map.getTileId(x -1, y, object) ==0){
  
                  x--;
                  System.out.println(x);
              }
  
          }
  
  
          if(Keyboard.isKeyDown(Keyboard.KEY_RIGHT)){
              System.out.println(x);
              if(map.getTileId(x + 1,y, object) ==0){
  
                  x++;
                  System.out.println(x);
              }
          }}
      }
  
      public void init() throws SlickException{
          menu = new TiledMap("res/menu.tmx");
          map = new TiledMap("res/map.tmx");
          x = 1;
          y = 0;
  
  
      }
      public void Mouse(){
          int iy = Mouse.getY();
           fy = (iy+0x20)&gt;&gt;0x06;
  
          int ix = Mouse.getX();
           fx = (ix+0x20)&gt;&gt;0x06;
  
  
          //System.out.println(fy);
          //System.out.println(fx);
      }
      public void checkInput(){
          switch(state){
          case MAIN:
              if(Keyboard.isKeyDown(Keyboard.KEY_RETURN)){
                  state = states.GAME;
              }
  
              break;
          case GAME:
              if(Keyboard.isKeyDown(Keyboard.KEY_ESCAPE)){
                  state = states.MAIN;
              }
          }
  
      }
  
  
      public GameWindow(){
  
  
          try {
              Display.setDisplayMode(new DisplayMode(1280,960));
              Display.create();
          } catch (LWJGLException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
          Display.setTitle("Hello");
  
          //initialization
          grass = LoadTexture("dirt64");
          glMatrixMode(GL_PROJECTION);
          glLoadIdentity();
          glOrtho(0, 1280, 960, 0, 1, -1 );
          glMatrixMode(GL_MODELVIEW);
          glEnable(GL_TEXTURE_2D);
  
          glEnable(GL_BLEND);
          glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  
          while(!Display.isCloseRequested()){
              //render code
              checkInput();
              Mouse();
              glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  
              render();
  
              Display.update();
              Display.sync(60);
          }
  
          Display.destroy();
      }
  
  
      public static void main(String[] args){
      new GameWindow();
  
  }}
  </code></pre>