java - Setting text on Label (Actor) stops drawing -


i can't figure this, , pulling hair out right now!!

i have stage label added it, set , first time call stage.draw() works fine. however, set text of label nothing gets drawn. funny thing is, when don't change text draws expected, when call label.settext("the text") doesn't draw.

i have stepped through code , have noted down height, width, x , y values before , after setting text of label, , same (before , after).

also, when draw stage it's drawn above sprite, , positioning sprite based on label's position. sprite draws fine before set text on label , after.

ps: have made sure sprite not drawn "over" label.

this setup:

i have maingame class renders player class, when ever back button pressed sprite stage gets drawn, or should drawn.

spritebatch.begin();     player.update(spritebatch, delta); spritebatch.end(); // pause menu drawn separate sprite batch needs in middle relative screen , above else if (player.ispaused()){     messagespritebatch.begin();     messagesprite.draw(messagespritebatch);      messagespritebatch.end();     messagestage.draw(); // stage doesn't seem getting drawn } 

player class - update method

if (!paused){                // removed clarity }else{     // on maingame class render small box 1 of following messages     // ready     // pause     // quit?     // game on      if (gdx.input.justtouched()){         paused = false;     }     spritebatch.setprojectionmatrix(camera.combined);     camera.update(); }  messagespritebatch = new spritebatch(); messagestage = new stage(gdx.graphics.getwidth(), gdx.graphics.getheight()); messagefont = new bitmapfont(gdx.files.internal("fonts/fontfile.fnt")); messagestyle = new labelstyle();       messagestyle.font = messagefont; messagelabel = new label("ready", messagestyle); 

this how initialise label, sprite , stage:

float fontscalex = gdx.graphics.getwidth()/scale_x_divider; float fontscaley = gdx.graphics.getheight()/scale_y_divider; messagelabel.setfontscale(fontscalex*1.4f, fontscaley*4.2f); messagelabel.setposition((messagestage.getwidth()/2)-((messagelabel.getwidth()/2)*messagelabel.getfontscalex()), (messagestage.getheight()/2)-((messagelabel.getheight()/2)*messagelabel.getfontscaley())+(player.getscoreboard().getsize().y/2)); messagestage.addactor(messagelabel); messagestage.act();  messagetexture = new texture(gdx.files.internal("images/message_background.png")); messagesprite = new sprite(messagetexture); messagesprite.setsize((messagelabel.getwidth()*messagelabel.getfontscalex())*1.5f, (messagelabel.getheight()*messagelabel.getfontscaley())*3);    messagesprite.setposition(messagelabel.getx()-(messagesprite.getwidth()/6), messagelabel.gety()-messagesprite.getheight()/2); 

please me, before bald xd

well width , height of label set once when creating label, matching width , height of initial text passed constructor. of course can make bigger setting width , height later on. use alignments way...

are using special characters when changing text, font has problem that?

maybe posting code give more insights...


Comments

Popular posts from this blog

Android layout hidden on keyboard show -

google app engine - 403 Forbidden POST - Flask WTForms -

c - Why would PK11_GenerateRandom() return an error -8023? -