java - LIBGDX making 5 different buttons on one screen -


i have 5 buttons need make different things don't , need know how make them it.

here code;

public class mainmenu implements screen {  crazyzombies game; stage stage; textureatlas atlas; skin skin; spritebatch batch; button play, option, quit, custom, store, menu;  public mainmenu(crazyzombies game) {     this.game = game; }  public void create () {     stage = new stage(); }  @override public void render(float delta) {     gdx.gl.glclearcolor(0.09f, 0.28f, 0.2f, 1);     gdx.gl.glclear(gl10.gl_color_buffer_bit);      stage.act(delta);     stage.draw();      batch.begin();     batch.end(); }  @override public void resize(int width, int height) {     if (stage == null)         stage = new stage(width, height, true);     stage.clear();      stage.setviewport(854, 480, true);     stage.getcamera().translate(-stage.getgutterwidth(), -stage.getgutterheight(), 0);      gdx.input.setinputprocessor(stage);      /**      * quit button      */      textbuttonstyle stylequit = new textbuttonstyle();     stylequit.up = skin.getdrawable("8layer");     stylequit.down = skin.getdrawable("8layer");      quit = new button(stylequit);      quit.addlistener(new inputlistener() {         public boolean touchdown(inputevent event, float x, float y,                 int pointer, int button) {             return true;         }          public void touchup(inputevent event, float x, float y,                 int pointer, int button) {          }     });      /**      * end quit button      */       /**       * store button       */      textbuttonstyle stylestore = new textbuttonstyle();     stylestore.up = skin.getdrawable("9layer");     stylestore.down = skin.getdrawable("9layer");      store = new button(stylestore);      store.addlistener(new inputlistener() {         public boolean touchdown(inputevent event, float x, float y,                 int pointer, int button) {             return true;         }          public void touchup(inputevent event, float x, float y,                 int pointer, int button) {             game.setscreen(new storescreen(game));         }     });      /**      * end store button      */       /**       * customs button       */      textbuttonstyle stylecustom = new textbuttonstyle();     stylecustom.up = skin.getdrawable("10layer");     stylecustom.down = skin.getdrawable("10layer");      custom = new button(stylecustom);      custom.addlistener(new inputlistener() {         public boolean touchdown(inputevent event, float x, float y,                 int pointer, int button) {             return true;         }          public void touchup(inputevent event, float x, float y,                 int pointer, int button) {             game.setscreen(new customscreen(game));         }     });      /**      * end customs button      */       /**       * options button       */      textbuttonstyle styleoptions = new textbuttonstyle();     styleoptions.up = skin.getdrawable("11layer");     styleoptions.down = skin.getdrawable("11layer");      option = new button(styleoptions);      option.addlistener(new inputlistener() {         public boolean touchdown(inputevent event, float x, float y,                 int pointer, int button) {             return true;         }          public void touchup(inputevent event, float x, float y,                 int pointer, int button) {             game.setscreen(new optionscreen(game));         }     });      /**      * end options button      */       /**       * play button       */      textbuttonstyle styleplay = new textbuttonstyle();     styleplay.up = skin.getdrawable("7layer");     styleplay.down = skin.getdrawable("7layer");      play = new button(styleplay);      play.addlistener(new inputlistener() {         public boolean touchdown(inputevent event, float x, float y,                 int pointer, int button) {             return true;         }          public void touchup(inputevent event, float x, float y,                 int pointer, int button) {             gdx.app.log(crazyzombies.log, "un-touched");             game.setscreen(new gamescreen(game));         }     });      /**      * end play button      */      /**      * start background      */      textbuttonstyle stylemenu = new textbuttonstyle();     stylemenu.up = skin.getdrawable("background");      menu = new button(stylemenu);      /**      * end background      */      stage.addactor(menu);     stage.addactor(play);     stage.addactor(option);     stage.addactor(store);     stage.addactor(custom);     stage.addactor(quit);  }  @override public void show() {     audio.playmusic(true);     batch = new spritebatch();     atlas = new textureatlas("data/mainmenu/mainmenu.pack");     skin = new skin();     skin.addregions(atlas); }  @override public void hide() {     dispose(); }  @override public void pause() {  }  @override public void resume() {  }  @override public void dispose() {     batch.dispose();     skin.dispose();     atlas.dispose();     stage.dispose();     audio.dispose(); }  public void playbutton(button play) {  } } 

so 5 buttons set , there actions , listeners not , when single 1 button out test works button can clicked on screen think issue button areas not know how set up.

i have tryed .getheight(), .getwidth etc. still same. although in texture atlas height , width images same makes 1 image issue ?

for first problem, buttons doesn't anything, think it's because event propagated of buttons, in order have been added stage. problem touchdown() method returns true. means propagation should stop , touchdown() method of others actors doesn't called. feel nothing in fact something, it's touchdown() method empty.

for second problem, it's because didn't set size of actors.


Comments