java - Rendering Image in Libgdx -


recently started developing libgdx , have encountered problem can seem resolve. want render image object scene2d screen doesn't render anything. it's shows blank screen.

here skin.json file:

 {  com.badlogic.gdx.scenes.scene2d.ui.image: {     logo: { drawable: logo }     exit: { drawable: exit } }, com.badlogic.gdx.graphics.color: {     green: { a: 1, b: 0, g: 1, r: 0 },     white: { a: 1, b: 1, g: 1, r: 1 },     red: { a: 1, b: 0, g: 0, r: 1 },     black: { a: 1, b: 0, g: 0, r: 0 }, },  } 

here skin.atlas file:

skin.png format: rgba8888 filter: nearest,nearest repeat: none logo   rotate: false   xy: 1, 1   size: 384, 93   orig: 384, 93   offset: 0, 0   index: -1   rotate: false   xy: 387, 30   size: 65, 64   orig: 65, 64   offset: 0, 0   index: -1 musicoff   rotate: false   xy: 454, 30   size: 65, 64   orig: 65, 64   offset: 0, 0   index: -1 musicon   rotate: false   xy: 521, 30   size: 65, 64   orig: 65, 64   offset: 0, 0   index: -1 exit   rotate: false   xy: 588, 30   size: 64, 64   orig: 64, 64   offset: 0, 0   index: -1 settings   rotate: false   xy: 654, 30   size: 64, 64   orig: 64, 64   offset: 0, 0   index: -1 

screenwrapper class:

package screens;  import com.badlogic.gdx.screen; import com.badlogic.gdx.graphics.orthographiccamera; import com.badlogic.gdx.utils.viewport.stretchviewport;  import engine.values;  import com.badlogic.gdx.scenes.scene2d.stage;  public abstract class screenwrapper extends stage implements screen{      protected screenmanager manager;     public screenwrapper(screenmanager manager) {         super( new stretchviewport(values.width, values.height, new orthographiccamera()));         this.manager = manager;     }      // actors added here     public abstract void initiate();     public abstract void buildstage();     @override     public void show() {      }     @override     public void render(float delta) {         act();         draw();     }     @override     public void resize(int width, int height) {         setviewport(new stretchviewport(values.width, values.height));     }     @override     public void pause() {      }     @override     public void resume() {      }     @override     public void hide() {      } } 

and here main file:

package screens;  import com.badlogic.gdx.gdx; import com.badlogic.gdx.graphics.gl20; import com.badlogic.gdx.scenes.scene2d.ui.image; import com.badlogic.gdx.scenes.scene2d.ui.skin;  import engine.values;  public class menuscreen extends screenwrapper{      private screenrenderer renderer;     public menuscreen(screenmanager manager) {         super(manager);         renderer = new screenrenderer();     }      @override     public void initiate() {         manager.getloader().load("skin.json", skin.class);     }     @override     public void buildstage() {         skin skin = manager.getloader().getasset("skin.json", skin.class);         image logo = new image(skin.getdrawable("logo"));         logo.setsize(values.logo_width, values.logo_height);         logo.setorigin(logo.getx() + values.logo_width / 2, logo.gety()                 + values.logo_height / 2);         logo.setposition(values.width / 2 - values.logo_width / 2,                 values.height);         addactor(logo);         gdx.app.log("x , y", "x : " + logo.getx() + ", y : "+logo.gety());         gdx.app.log("width , height", "width : " + logo.getwidth() + ", height : " + values.height);     }      @override     public void render(float delta) {         super.render(delta);         gdx.gl.glclearcolor(242/255f, 242/255f, 242/255f, 0);         gdx.gl.glclear(gl20.gl_color_buffer_bit);     }  } 

what doing wrong?

edit: ok narrowed down problem json file. looks i'm not declaring logo element correctly. how declare image elements in json?

edit 2: tried changing json file this:

{  com.badlogic.gdx.scenes.scene2d.ui.imagebutton$imagebuttonstyle: {     logo: { imageup: logo, imagedown: logo } }, com.badlogic.gdx.graphics.color: {     green: { a: 1, b: 0, g: 1, r: 0 },     white: { a: 1, b: 1, g: 1, r: 1 },     red: { a: 1, b: 0, g: 0, r: 1 },     black: { a: 1, b: 0, g: 0, r: 0 }, },  } 

but still doesn't work...

edit 3: tried load .png file of logo logo actor texture object still doesn't draw anything. did this: pastebin.com/n6ib2ymd

solution: ok figured out. turns out values.logo_width , values.logo_height 0 size of image set 0...

is menuscreen stage? it's not clear code. if yes, need add calls act , draw methods in render method:

@override public void render(float delta) {     super.render(delta);     gdx.gl.glclearcolor(242/255f, 242/255f, 242/255f, 0);     gdx.gl.glclear(gl20.gl_color_buffer_bit);     act();     draw(); } 

these methods draw actors added stage.


Comments

Popular posts from this blog

java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -

python - pip wont install .WHL files -

Excel VBA "Microsoft Windows Common Controls 6.0 (SP6)" Location Changes -