lundi 23 novembre 2015

calling if statement and not updating it untill its finished (LWJGL)

so, I have this basic java question;

how can I call an if statement (or any other function) without calling it again, untill its finished executing? I have an update function that calls another function (in another class) but because it executes every update, the user doesn't get the time to exctually complete the IF statements (the if statements rely on user input) so therefor it returns nothing or only the first part.

code: where the update is

public void Update(){
    if(Mouse.isButtonDown(0)){
        changeTile();
    }
    while(Keyboard.next()){
        if(Keyboard.getEventKey() == Keyboard.KEY_RIGHT && Keyboard.getEventKeyState()){
            moveIndex();
        }
        if(Keyboard.getEventKey() == Keyboard.KEY_LEFT && Keyboard.getEventKeyState()){
            moveIndexBack();
        }
    }
}

changeTile function:

    public void changeTile(){
    boolean start = true;

    if(start){
        while(Mouse.next()){
        if(Mouse.getEventButton() == 0 && Mouse.getEventButtonState()){
                    //system uses tileTypes because player textures are tiletypes itself, so in the end we can let them swim by changing tiletypes
                    int xCoord = (int) Math.floor(Mouse.getX() / 64);
                    int yCoord = (int) Math.floor((HEIGHT - Mouse.getY() - 1) / 64);
                    tileType tile1 = map[xCoord][yCoord].getType();
                    System.out.println("first tile is set to:" + tile1);
                    start = false;
            }
        }
    }

    if(!start){
        while(Mouse.next()){
            if(Mouse.getEventButton() == 0 && Mouse.getEventButtonState()){
                int xCoord2 = (int) Math.floor(Mouse.getX() / 64);
                int yCoord2 = (int) Math.floor((HEIGHT - Mouse.getY() - 1) / 64);
                tileType tile2 = map[xCoord2][yCoord2].getType();
                System.out.println("second tile is set to:" + tile2);
            }
        }
    }

Aucun commentaire:

Enregistrer un commentaire