java game - slick - FPS

Programovacie jazyky, rady, poradňa...
mikehudak
Amateur
Amateur
Príspevky: 30
Registrovaný: 22 mar 2009, 17:15
Kontaktovať používateľa:

java game - slick - FPS

Príspevok od používateľa mikehudak »

Zdravim,

mam jednoduchu java hru a chcem aby som mohol zapinat/vypinat FPS v okne.

Game.java

Kód: Vybrať všetko

package game;

import org.newdawn.slick.*;
import org.newdawn.slick.state.*;

public class Game extends StateBasedGame {

    public static final String gamename = "Game 1.0";
    public static final int menu = 0;
    public static final int play = 1;

    public Game(String gamename) {
        super(gamename);
        this.addState(new Menu(menu));
        this.addState(new Play(play));
    }

    public void initStatesList(GameContainer gc) throws SlickException {
        this.getState(menu).init(gc, this);
        this.getState(play).init(gc, this);
        this.enterState(menu);
    }

    public static void main(String[] args) {
        AppGameContainer appgc;
        try {
            appgc = new AppGameContainer(new Game(gamename));
            appgc.setDisplayMode(640, 360, false);
            appgc.setShowFPS(false);
            appgc.start();
        } catch (SlickException e) {
            e.printStackTrace();
        }
    }
}
ako zmenit appgc.setShowFPS(false); programovo ? Dat to ako boolean premennu ? Ako ?

Play.java

Kód: Vybrať všetko

package game;

import org.newdawn.slick.*;
import org.newdawn.slick.state.*;

public class Play extends BasicGameState {

    public Play(int state) {
    }

    public void init(GameContainer gc, StateBasedGame sbg) throws SlickException {

    }

    public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException {
        g.drawString("Playing ...", 10, 10);
    }

    public void update(GameContainer gc, StateBasedGame sbg, int delta) throws SlickException {
            Input input = gc.getInput();
            if (input.isKeyPressed(Input.KEY_F)) {
                    //TO DO
                    //zmenit hodnotu setShowFPS(); na TRUE
            }
    }

    public int getID() {
        return 1;
    }
}

za vase prispevky dakujem
javatar
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6112
Registrovaný: 12 aug 2010, 14:49
Bydlisko: I don't exist at all.

Re: java game - slick - FPS

Príspevok od používateľa javatar »

zavesit funckiu na event kde zavolas appgc.setShowFPS(true) (pripadne false ked chces vypnut) ?
mikehudak
Amateur
Amateur
Príspevky: 30
Registrovaný: 22 mar 2009, 17:15
Kontaktovať používateľa:

Re: java game - slick - FPS

Príspevok od používateľa mikehudak »

javatar napísal:zavesit funckiu na event kde zavolas appgc.setShowFPS(true) (pripadne false ked chces vypnut) ?
v class play.java je metoda update

Kód: Vybrať všetko

public void update(GameContainer gc, StateBasedGame sbg, int delta) throws SlickException {
            Input input = gc.getInput();
            if (input.isKeyPressed(Input.KEY_F)) {
                    //TO DO
                    //zmenit hodnotu setShowFPS(); na TRUE
            }
    }
a tam kde je TO DO tak tam nejako zmenit hodnotu na true
javatar
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6112
Registrovaný: 12 aug 2010, 14:49
Bydlisko: I don't exist at all.

Re: java game - slick - FPS

Príspevok od používateľa javatar »

ked tam das appgc.setShowFPS(true) tak ti spravi co?
mikehudak
Amateur
Amateur
Príspevky: 30
Registrovaný: 22 mar 2009, 17:15
Kontaktovať používateľa:

Re: java game - slick - FPS

Príspevok od používateľa mikehudak »

nie je tam urceny objekt appgc takze hodi error
javatar
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6112
Registrovaný: 12 aug 2010, 14:49
Bydlisko: I don't exist at all.

Re: java game - slick - FPS

Príspevok od používateľa javatar »

aha uz vidim o co ti ide - no ber to tak, ze to appgc ma zivotnost len v ramci metody main - takze ho deklaruj na urovni triedy (ako pozeram tak pokojne staticky) a nasledne sa k nemu uz vies dostat
intelygent
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 55
Registrovaný: 04 feb 2007, 20:43

Re: java game - slick - FPS

Príspevok od používateľa intelygent »

skus pozret toto
inak chvalim ta za slick :)
mikehudak
Amateur
Amateur
Príspevky: 30
Registrovaný: 22 mar 2009, 17:15
Kontaktovať používateľa:

Re: java game - slick - FPS

Príspevok od používateľa mikehudak »

pridal som appgc.setVSync(true);

Kód: Vybrať všetko

public static void main(String[] args) throws SlickException {
        appgc = new AppGameContainer(new Game(gamename));
        appgc.setDisplayMode(640, 360, false);
        appgc.setVSync(true);
        appgc.start();
    }
vytvoril som si metody v Game.java

Kód: Vybrať všetko

public void showFPS(){
        appgc.setShowFPS(true);
    }
    
    public void hideFPS(){
        appgc.setShowFPS(false);
    }
a v Play.java volam metody

pomocou tlacidla F

Kód: Vybrať všetko

int counter = 0;

// FPS
        if (input.isKeyPressed(Input.KEY_F)) {
            Game game = new Game(Game.gamename);
            counter++;
            if (counter % 2 == 0) {
                game.showFPS();
            } else {
                game.hideFPS();
            }
        }
Napísať odpoveď