我今天刚开始使用Libgdx进行编程,我想无限地向下移动相机,动态渲染背景,所以相机总能看到。
问题是,我制作了一个代码来做到这一点,但我注意到背景中的一些“中断”。它不够平滑,我无法弄清楚为什么..为了更好地看到这些“休息”只是提高了属性“速度”。
我托管了我的项目,链接如下。如果有人可以分析代码,我会很高兴的!
非常感谢!
项目:http://www.4shared.com/rar/SEjnsbLsce/drop_1.html
编辑:
“休息”就像摄像机运动的0.1暂停一样。不够顺利,有时我会暂停这一点。
我已经尝试手动执行,看看“中断”是否继续,并且它会继续。
渲染():
batch.draw(backgroundImage, backgroundSprite.getX(), 0);
batch.draw(backgroundImage, backgroundSprite.getX(), -800 );
batch.draw(backgroundImage, backgroundSprite.getX(), -1600 );
.
.
.
batch.draw(backgroundImage, backgroundSprite.getX(), -9600 );
我的动态代码非常快,我知道我可以做得更好,但我正在编程以使其有效,然后,重构:
渲染():
camera.position.set(camera.position.x, camera.position.y - (speed * Gdx.graphics.getDeltaTime()), camera.position.z);
batch.begin();
if( yWalked < backgroundSprite.getHeight() * backgroundCounter ){
batch.draw(backgroundImage, backgroundSprite.getX(), ( ( backgroundSprite.getHeight() * backgroundCounter ) - backgroundSprite.getHeight()) * -1);
}
if( ( yWalked + backgroundSprite.getHeight() ) > ( backgroundSprite.getHeight() * backgroundCounter ) ){
batch.draw(backgroundImage, backgroundSprite.getX(), (backgroundSprite.getHeight() * backgroundCounter) * -1 );
}
if( yWalked > backgroundSprite.getHeight() * backgroundCounter ){
backgroundCounter++;
}
yWalked = yWalked + ( speed * Gdx.graphics.getDeltaTime() );
batch.end();