2D图形性能提升



我知道我的标题有点含糊。我的问题是,我正试图用Win32图形用C++编写一个小游戏,我希望我所有的作品都是自上而下绘制的,这样它们就可以正确地放在前面。(例如,如果我站在树前,它会先画树,然后画玩家,所以我在前面)

我的第一个想法是,使用向量,因为我需要一个动态数组类型的东西,在像这样的for循环中循环

for(y = 0; y < playerYValue; y++){
    //Check every enemy/object to see if its yValue matches the looping y
    object.drawImage();
}

在球员面前也是如此。然而,在运行一些测试后,这是非常低效的,因为循环需要34毫秒,而不循环则需要2:/

我正在寻找一种方法来按顺序绘制我的所有对象,如果有任何帮助,我将不胜感激,一切都值得一试。这是我想不出有什么创造性的方法来解决这个问题的一个领域。

请询问是否需要我提供更多详细信息:)

EDIT:代码中的注释是每次向量迭代的占位符,用于检查对象的yValue是否等于y:)我想我应该稍微澄清一下:)

也许你应该按y值对对象进行排序,然后渲染它们,如果你现在每次绘制对象时都在每个对象上进行搜索,这应该会更快。

尽量不要让球员变得特别。玩家也应该是一个"对象",然后你会从后向前排序一次,然后从后向前抽。

最新更新