0

我知道我的头衔有点草率。我的问题是,我正在尝试用 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:/

我正在寻找一种方法来按顺序绘制我的所有对象,并希望得到任何帮助,一切都值得一试。这是我想不出一种创造性的方法来解决问题的一个领域。

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

编辑:代码中的注释是每次向量迭代的占位符,以检查对象的 yValue 是否等于 y :) 以为我会澄清一点:)

4

1 回答 1

2

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

并且尽量不要让玩家变得特别。Player 也应该是一个“对象”,然后您将排序一次回到前面,然后再回到前面。

于 2013-08-08T11:02:48.313 回答