除其他外,我正在绘制四个65 sf :: RectangleShape的数组(我使用的是SFML 2.0)。在我的游戏循环中,我这样做:
//...
window.clear();
// here I am drawing some other stuff
for (int i = 0; i < 65; i++) {
window.draw(tilesLeft[i]);
window.draw(tilesTop[i]);
window.draw(tilesRight[i]);
window.draw(tilesBot[i]);
}
window.display();
这很好用。但是,我在任务管理器中注意到,我在屏幕上绘制的阵列越多,自然就会使用越多的CPU功率。因此,当我绘制简单的东西时,它是0-5%,而现在,当我绘制这四个阵列时,它上升到20-25%。
现在我的问题是,如何减少CPU使用率?我正在制作的程序非常非常简单,因此25%的CPU使用率是不合理的,而且实际上是由于我的实施不佳。
有没有办法,我不知道,缓存在一个帧中绘制的图片并将其制作成位图或其他东西,只绘制那个butmap,直到数组中的某些内容发生变化?
我也已经尝试在不同的线程中绘制数组而没有产生更好的结果,所以我非常希望有人可以帮助我。
我尽力彻底解释这一点,但我不是母语为英语的人,所以我不知道它是如何被感知的。此外,我已经使用谷歌试图解决这个问题,而不是在这里问,但没有任何运气。
谢谢