libgdx - 带有一点“休息”的render()

时间:2014-02-11 14:12:50

标签: libgdx

我今天刚开始使用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();

0 个答案:

没有答案