android - SplashScene not centered -
i trying out andengine , cannot work out why splashscreen not centered in device - see image below. have set default size device (800, 480) , placed splash @ camera.getwidth() / 2. seems corner of splash hits center pretty spot on want center of splash centered - makes sense?

mainactivity:
package com.example.caspe.getmeout; import org.andengine.engine.engine; import org.andengine.engine.limitedfpsengine; import org.andengine.engine.camera.camera; import org.andengine.engine.handler.timer.itimercallback; import org.andengine.engine.handler.timer.timerhandler; import org.andengine.engine.options.screenorientation; import org.andengine.engine.options.wakelockoptions; import org.andengine.engine.options.resolutionpolicy.ratioresolutionpolicy; import org.andengine.engine.options.engineoptions; import org.andengine.entity.scene.scene; import java.io.ioexception; public class mainactivity extends basegameactivity { private resourcesmanager resourcesmanager; private static final int camera_width = 800; private static final int camera_height = 480; private camera camera; public engineoptions oncreateengineoptions() { camera = new camera(0, 0, camera_width, camera_height); engineoptions engineoptions = new engineoptions(true, screenorientation.landscape_fixed, new ratioresolutionpolicy(800, 480), this.camera); engineoptions.getaudiooptions().setneedsmusic(true).setneedssound(true); engineoptions.setwakelockoptions(wakelockoptions.screen_on); return engineoptions; } @override public engine oncreateengine(engineoptions pengineoptions) { return new limitedfpsengine(pengineoptions, 60); } @override public void oncreateresources(oncreateresourcescallback poncreateresourcescallback) throws exception { resourcesmanager.preparemanager(mengine, this, camera, getvertexbufferobjectmanager()); resourcesmanager = resourcesmanager.getinstance(); poncreateresourcescallback.oncreateresourcesfinished(); } @override public void oncreatescene(oncreatescenecallback poncreatescenecallback) throws ioexception { scenemanager.getinstance().createsplashscene(poncreatescenecallback); } @override public void onpopulatescene(scene pscene, onpopulatescenecallback ponpopulatescenecallback) throws ioexception { mengine.registerupdatehandler(new timerhandler(2f, new itimercallback() { public void ontimepassed(final timerhandler ptimerhandler) { mengine.unregisterupdatehandler(ptimerhandler); // load menu resources, create menu scene // set menu scene using scene manager // disposesplashscene(); } })); ponpopulatescenecallback.onpopulatescenefinished(); } } and code splash:
package com.example.caspe.getmeout; import org.andengine.engine.camera.camera; import org.andengine.entity.sprite.sprite; import org.andengine.opengl.util.glstate; import com.example.caspe.getmeout.basescene; import com.example.caspe.getmeout.scenemanager.scenetype public class splashscene extends basescene { private sprite splash; @override public void createscene() { splash = new sprite(0,0, resourcesmanager.splash_region, vbom) { @override protected void predraw(glstate pglstate, camera pcamera) { super.predraw(pglstate, pcamera); pglstate.enabledither(); } }; splash.setscale(1.5f); splash.setposition(camera.getwidth() / 2, camera.getheight() / 2); attachchild(splash); } @override public void onbackkeypressed() { } @override public scenetype getscenetype() { return scenetype.scene_splash; } @override public void disposescene() { splash.detachself(); splash.dispose(); this.detachself(); this.dispose(); } } please let me know if need more code this. not directly seeking working piece of code more error can use braincells , work out - have stared myself blind here.
splash.setposition(camera.getwidth() / 2, camera.getheight() / 2); that not enough. splash centered correctly: top left corner in center.
what need subtract half width , height of splash position, too.
// untested code splash.setposition(camera.getwidth() / 2 - splash.getwidth() / 2, camera.getheight() / 2 - splash.getheight() / 2);
Comments
Post a Comment