我正在使用libGdx创建游戏,并且遇到getWorldHeight()参数的困难。
这是我的代码:
public Level(Viewport Viewport)
{
this.viewport = Viewport;
player = new Player(viewport,this);
pbullets = new DelayedRemovalArray<PlayerBullet>();
powerUps = new DelayedRemovalArray<PowerUps>();
MediumAsteroid = new DelayedRemovalArray<Asteroid>();
enemySpaceships = new DelayedRemovalArray<EnemySpaceShip>();
startTime_POWERUP = TimeUtils.millis();
startTime_ASTEROID = TimeUtils.millis();
float Xpos = (viewport.getWorldWidth()/2);
float Ypos = viewport.getWorldHeight();
Gdx.app.log("YPOS ", Float.toString(Ypos));
enemySpaceships.add(new EnemySpaceShip(new Vector2(Xpos,Ypos),this));
}
世界尺寸为128x128。
设置为viewport.getWorldHeight()的Ypos返回0。
但是,在同一类中,我在更新回调期间再次调用此方法,并且它返回128。
例:
public void SpawnPowerUp()
{
float Xpos = MathUtils.random(Constants.POWERUP_WIDTH,viewport.getWorldWidth()) - Constants.POWERUP_WIDTH;
float Ypos = viewport.getWorldHeight();
Vector2 position = new Vector2(Xpos,Ypos);
powerUps.add(new PowerUps(position,this));
}
就我所知,viewport.getWorldHeight()应该返回完整的世界高度,即128。为什么在这种情况下返回0?
最佳答案
可能是因为在构造函数中,创建并显示方法vp尚未完全初始化。您尝试过vp.apply()吗?如果可以的话,我今天可以测试一下。
关于java - libGdx getWorldHeight返回错误的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45402775/